samedi 25 avril 2015

JavaFX HBox und BorderPane..

Hey,
ich bin noch recht neu in JavaFX, deshalb ist das wahrscheinlich ein ziemlich dummer Fehler.
Aber ich möchte ein Programm machen was so in 3 Teile unterteilt ist...
Ganz oben kommt eine MenuBar hin(ist schon erledigt). In die Mitte kommen 2 TextAreas und ganz nach Unten soll noch eine Art Statusbar hinkommen..
Also erstellte ich mir eine BorderPane und packte meine Statusbar(HBox mit einem Label drinn) in den Bottom-Part der BorderPane und für die 2 TextAreas erstellte ich eine HBox mit den 2 TextAreas drinne und packte es in den Center-Part der BorderPane mit der Hoffnung das es funktioniert :D.
Java Code:

  1.  
  2. TextArea editor = new TextArea();
  3.  
  4. TextArea editor2 = new TextArea();
  5.  
  6. HBox content = new HBox();
  7. content.setStyle("-fx-background-color: #0000FF;");
  8. content.getChildren().addAll(editor, editor2);
  9.  
  10. Label compileStatus = new Label("Successful compiled!");
  11.  
  12. HBox statusbar = new HBox();
  13. statusbar.setPadding(new Insets(5, 5, 5, 5));
  14. statusbar.setStyle("-fx-background-color: #00FF00;");
  15. statusbar.getChildren().add(compileStatus);
  16.  
  17. BorderPane prgmScene = new BorderPane();
  18. prgmScene.setCenter(content);
  19. prgmScene.setBottom(statusbar);
  20.  
  21. //Layout
  22. VBox layout = new VBox();
  23. layout.getChildren().addAll(menubar, prgmScene);

Hat aber nicht so ganz funktioniert wie ich es mir vorgestellt habe..
Die zwei TextAreas wurden zwar nebeneinander platziert skalieren sich aber nicht, somit füllen sie nicht den ganzen Bildschirm. Anscheinend wurde die HBox im Center dann auch nur so groß gemacht wie der Inhalt und somit wurde die Statusbar auch irgendwo oben platziert obwohl sie ganz nach unten soll...
Klicken Sie auf die Grafik für eine größere Ansicht  Name: Unbenannt.PNG  Hits: 0  Größe: 20,3 KB  ID: 7683
So jetzt meine Frage:
Wie kann ich die HBox mit den 2 TextAreas so machen das sie den ganzen verfügbaren Platz im Fenster ausnutzt und entsprechend skaliert und Statusbar immer unten bleibt?
Hier nochmal der ganze Code von meiner start() Methode inkl. der Code zur MenuBar
Java Code:

  1.  
  2. private Stage window;
  3. private Scene scene;
  4.  
  5. @Override
  6. public void start(Stage primaryStage) throws Exception {
  7. window = primaryStage;
  8. window.setTitle("JavaFX prgm");
  9.  
  10. saveIcon = new Image(getClass().getClassLoader().getResourceAsStream("res/save_edit.png"));
  11. exitIcon = new Image(getClass().getClassLoader().getResourceAsStream("res/exit.png"));
  12.  
  13. //Creating Menubar\\
  14. /**/
  15. /**/MenuBar menubar = new MenuBar();
  16. /**/
  17. /**//**/Menu file = new Menu("File");
  18. /**//**//**/MenuItem newFile = new MenuItem("New");
  19. /**//**//**/newFile.setAccelerator(KeyCombination.keyCombination("Ctrl+N"));
  20. /**//**//**/
  21. /**//**//**/MenuItem openFile = new MenuItem("Open");
  22. /**//**//**/openFile.setAccelerator(KeyCombination.keyCombination("Ctrl+O"));
  23. /**//**//**/
  24. /**//**//**/MenuItem closeFile = new MenuItem("Close");
  25. /**//**//**/closeFile.setAccelerator(KeyCombination.keyCombination("Ctrl+W"));
  26. /**//**//**/
  27. /**//**//**/MenuItem saveFile = new MenuItem("Save");
  28. /**//**//**/saveFile.setGraphic(new ImageView(saveIcon));
  29. /**//**//**/saveFile.setAccelerator(KeyCombination.keyCombination("Ctrl+S"));
  30. /**//**//**/
  31. /**//**//**/MenuItem exitPrgm = new MenuItem("Exit");
  32. /**//**//**/exitPrgm.setOnAction(e -> window.close());
  33. /**//**//**/exitPrgm.setGraphic(new ImageView(exitIcon));
  34. /**//**//**/
  35. /**//**/file.getItems().addAll(newFile, openFile, new SeparatorMenuItem() ,closeFile, new SeparatorMenuItem(), saveFile, new SeparatorMenuItem(), exitPrgm);
  36. /**/
  37. /**//**/Menu edit = new Menu("Edit");
  38. /**/
  39. /**/menubar.getMenus().addAll(file, edit);
  40. /**/
  41. //End creating menubar\\
  42.  
  43. TextArea editor = new TextArea();
  44.  
  45. TextArea editor2 = new TextArea();
  46.  
  47. HBox content = new HBox();
  48. content.setStyle("-fx-background-color: #0000FF;");
  49. content.getChildren().addAll(editor, editor2);
  50.  
  51. Label compileStatus = new Label("Successful compiled!");
  52.  
  53. HBox statusbar = new HBox();
  54. statusbar.setPadding(new Insets(5, 5, 5, 5));
  55. statusbar.setStyle("-fx-background-color: #00FF00;");
  56. statusbar.getChildren().add(compileStatus);
  57.  
  58. BorderPane prgmScene = new BorderPane();
  59. prgmScene.setCenter(content);
  60. prgmScene.setBottom(statusbar);
  61.  
  62. //Layout
  63. VBox layout = new VBox();
  64. layout.getChildren().addAll(menubar, prgmScene);
  65.  
  66. scene = new Scene(layout, 1000, 600);
  67. window.setScene(scene);
  68. window.show();
  69. }


MfG ostylk
Miniaturansichten angehängter Grafiken
Klicken Sie auf die Grafik für eine größere Ansicht  Name: Unbenannt.PNG  Hits: -  Größe: 20,3 KB  ID: 7683  


JavaFX HBox und BorderPane..

0 commentaires:

Enregistrer un commentaire