BorderPane in JavaFX
In diesem Artikel geht es um das BorderPane in JavaFX. Dabei handelt es sich um ein weiteres Layout, welches uns ermöglicht unser Nodes entsprechend anzuordnen. Es ist nicht ganz so flexibel wie man anderes Layout, aber es findet dennoch seine Verwendung.
package application;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.BorderPane;
import javafx.stage.Stage;
public class Main extends Application {
@Override
public void start(Stage primaryStage) {
try {
BorderPane borderPane = new BorderPane();
Scene scene = new Scene(borderPane,400,400);
Button btnTop = new Button("Oben");
borderPane.setTop(btnTop);
Button btnCenter = new Button("Mitte");
borderPane.setCenter(btnCenter);
Button btnRight = new Button("Rechts");
borderPane.setRight(btnRight);
Button btnBottom = new Button("Unten");
borderPane.setBottom(btnBottom);
Button btnLeft = new Button("Links");
borderPane.setLeft(btnLeft);
primaryStage.setScene(scene);
primaryStage.show();
} catch(Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
launch(args);
}
}
Damit erhalten wir folgendes Programm:
[image img_id=”6246″ alt=”BorderPane in JavaFX” width=”441″ height=”469″]
Das ist natürlich sehr vereinfacht. Wir können nämlich statt Buttons auch VBoxen einbauen und haben plötzlich ganz andere Möglichkeiten.
[spoiler title=’BorderPane in JavaFX’]
package application;
import javafx.application.Application;
import javafx.event.Event;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.TextArea;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.VBox;
import javafx.scene.web.HTMLEditor;
import javafx.scene.web.WebView;
import javafx.stage.Stage;
public class Main extends Application {
@Override
public void start(Stage primaryStage) {
try {
BorderPane borderPane = new BorderPane();
Scene scene = new Scene(borderPane,400,400);
Label top = new Label("Der Text oben");
VBox left = new VBox();
VBox right = new VBox();
HTMLEditor htmlEditor = new HTMLEditor();
htmlEditor.setPrefHeight(250);
// hier legen wir einen Brwoser an und holen sein Engine
final WebView browser = new WebView();
final TextArea htmlCode = new TextArea();
htmlCode.setWrapText(true);
// Dieser Button soll nun den Inhalt
// des HTML Editor in Form von Code anzeigen
Button showHTMLButton = new Button("Zeige HTML Code an");
showHTMLButton.setOnAction(new EventHandler() {
@Override
public void handle(Event arg0) {
htmlCode.setText(htmlEditor.getHtmlText());
}
});
left.getChildren().add(new Button("Der Überbutton"));
right.getChildren().add(showHTMLButton);
borderPane.setTop(top);
borderPane.setCenter(htmlEditor);
borderPane.setLeft(left);
borderPane.setRight(right);
borderPane.setBottom(htmlCode);
primaryStage.setScene(scene);
primaryStage.show();
} catch(Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
launch(args);
}
}
[/spoiler]