Hallo liebe Comunity,
habe folgendes Projekt in JafaFX gemacht:
Ich habe eine ListView<String> erstellt, die in eine VBox reingepackt und die wiederum in die layout.setLeft (BorderPane) reingetan. Links und Rechts jeweils eine.
Wenn ich aber von der Stage die Fenstergröße ändere, also mit der Maus größer kleiner ziehe, passt sich die größe der ListVievs leider nicht an. Ich habe verschiedene Propertys probiert, mit ChangeListeners gearbeitet, alles leider ohne Erfolg. Nur mein Kopf rauch immer mehr.
Kann man das in dieser Konstellation überhaupt realsieren und wenn ja, am Besten wie?
)
habe folgendes Projekt in JafaFX gemacht:
Java:
package gui;
import javafx.geometry.Insets;
import javafx.geometry.Orientation;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.ListView;
import javafx.scene.control.Separator;
import javafx.scene.control.TextField;
import javafx.scene.layout.Background;
import javafx.scene.layout.BackgroundFill;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.CornerRadii;
import javafx.scene.layout.HBox;
import javafx.scene.layout.VBox;
import javafx.scene.paint.Color;
import javafx.scene.text.Font;
import javafx.scene.text.FontWeight;
public class CreateGUIBooking {
private Scene scene;
private BorderPane layout;
private VBox vBoxTop;
private VBox vBoxBottom;
private VBox vBoxLeft;
private VBox vBoxRight;
private VBox vBoxCenter;
private Font fontLabel;
private Label labelAmount;
private TextField tfAmount;
private Separator separator;
private Button btn_buchen;
private ListView<String> outgoings;
private ListView<String> income;
private Label labelOutgoings;
private Label labelIncome;
private String txtLabelAmount = "Betrag eingeben";
private String txtLabelOutgoings = "Ausgaben";
private String txtLabelIncome = "Einnahmen";
private String txtBtn_buchen = "Buchen";
public CreateGUIBooking() {
layout = new BorderPane();
scene = new Scene(layout, 700, 600);
vBoxTop = new VBox();
vBoxLeft = new VBox();
vBoxCenter = new VBox();
vBoxRight = new VBox();
vBoxBottom = new VBox();
fontLabel = Font.font("sans-serif", FontWeight.BOLD, 15);
labelAmount = new Label();
tfAmount = new TextField();
separator = new Separator();
btn_buchen = new Button();
labelOutgoings = new Label();
outgoings = new ListView<String>();
labelIncome = new Label();
income = new ListView<String>();
setPostions();
}
private void setPostions() {
// vBoxTop
labelAmount.setFont(fontLabel);
labelAmount.setText(txtLabelAmount);
tfAmount.setAlignment(Pos.CENTER);
tfAmount.setPrefSize(100, 25);
tfAmount.setMinSize(100, 25);
tfAmount.setMaxSize(100, 25);
VBox.setMargin(labelAmount, new Insets(20, 0, 0, 0));
VBox.setMargin(tfAmount, new Insets(5,0,0,0));
vBoxTop.setAlignment(Pos.CENTER);
vBoxTop.getChildren().addAll(labelAmount, tfAmount);
layout.setTop(vBoxTop);
// Separator
separator.setOrientation(Orientation.VERTICAL);
separator.setMinSize(10, 300);
separator.setPrefSize(10, 300);
separator.setMaxSize(10, 300);
vBoxCenter.getChildren().add(separator);
vBoxCenter.setAlignment(Pos.CENTER);
layout.setCenter(vBoxCenter);
//vBoxLeft
labelIncome.setFont(fontLabel);
labelIncome.setText(txtLabelIncome);
income.setMinSize(300, 420);
//vBoxLeft.setBackground(new Background(new BackgroundFill(Color.AQUA,
// CornerRadii.EMPTY, Insets.EMPTY)));
vBoxLeft.setAlignment(Pos.CENTER);
VBox.setMargin(income, new Insets(0, 0, 0, 20));
vBoxLeft.getChildren().addAll(labelIncome, income);
layout.setLeft(vBoxLeft);
// vBoxRight
labelOutgoings.setFont(fontLabel);
labelOutgoings.setText(txtLabelOutgoings);
outgoings.setMinSize(300, 420);
vBoxRight.setAlignment(Pos.CENTER);
VBox.setMargin(outgoings, new Insets(0, 20, 0, 0));
vBoxRight.getChildren().addAll(labelOutgoings, outgoings);
layout.setRight(vBoxRight);
// vBoxBottom
btn_buchen.setFont(fontLabel);
btn_buchen.setText(txtBtn_buchen);
btn_buchen.setAlignment(Pos.CENTER);
btn_buchen.setMinSize(120, 25);
vBoxBottom.setAlignment(Pos.CENTER);
VBox.setMargin(btn_buchen, new Insets(0,0,20,0));
vBoxBottom.getChildren().add(btn_buchen);
layout.setBottom(vBoxBottom);
}
public Scene getScene() {
return scene;
}
}
Ich habe eine ListView<String> erstellt, die in eine VBox reingepackt und die wiederum in die layout.setLeft (BorderPane) reingetan. Links und Rechts jeweils eine.
Wenn ich aber von der Stage die Fenstergröße ändere, also mit der Maus größer kleiner ziehe, passt sich die größe der ListVievs leider nicht an. Ich habe verschiedene Propertys probiert, mit ChangeListeners gearbeitet, alles leider ohne Erfolg. Nur mein Kopf rauch immer mehr.
Kann man das in dieser Konstellation überhaupt realsieren und wenn ja, am Besten wie?