GUI проблема изменения размера при раскрытии окна Java - PullRequest
0 голосов
/ 11 июля 2020

Этот код генерирует изменяемый размер GUI, однако при расширении окна элементы внутри него не подстраиваются под размер окна. Этот код состоит из отдельных классов, верхней строки, средней строки, нижней строки и основного GUI, содержащего эти классы. Я сделал каждый ряд горизонтальным прямоугольником. Верхний и средний ряды содержат кнопки и текстовые поля, а нижний - одно большое текстовое поле. Любая помощь приветствуется. Спасибо.

import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.TextField;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.HBox;
import javafx.scene.layout.VBox;
import javafx.scene.shape.Line;
import javafx.stage.Stage;
private final TopRow tr = new TopRow();
private final CenterRow cr = new CenterRow();
private final BottomRow br = new BottomRow();

@Override
public void start(Stage primaryStage) {
    DataBase();
    Scene scene = new Scene(new AppGUI(), 900, 350);
    scene.getStylesheets().add("zipStyler.css");
    primaryStage.setTitle("ZipCode Translation System");
    primaryStage.setScene(scene);
    primaryStage.show();
    primaryStage.setResizable(true);

}

public static void main(String[] args) {
    launch(args);
}

private class AppGUI extends BorderPane {
    private AppGUI() {
        this.setTop(tr);
        this.setCenter(cr);
        this.setBottom(br);
        zToCbtn.setOnAction(e -> CheckZip());
        cToZbtn.setOnAction(e -> CheckCityState());

    }
}

private class TopRow extends VBox {
    public TopRow() {
        HBox hbox = new HBox();
        hbox.setPadding(new Insets(15, 10, 15, 10));
        hbox.setSpacing(15);
        hbox.setAlignment(Pos.CENTER);

        this.setAlignment(Pos.CENTER);

        Line line = new Line();
        line.setStrokeWidth(3);
        line.setEndX(800.0);

        zipText2.setPrefWidth(80);

        Label ZipCode = new Label("Zip Code:");
        Label City = new Label("City:");
        Label State = new Label("State:");

        stateText1.setEditable(false);
        stateText1.setMouseTransparent(true);
        stateText1.setPrefWidth(200);

        cityText1.setPrefWidth(200);
        cityText1.setEditable(false);
        cityText1.setMouseTransparent(true);

        hbox.getChildren().addAll(ZipCode, zipText2, zToCbtn, City, cityText1, State, stateText1);
        this.getChildren().addAll(hbox, line);

    }
}

private class CenterRow extends VBox {
    public CenterRow() {
        HBox hbox = new HBox();
        hbox.setPadding(new Insets(15, 10, 15, 10));
        hbox.setSpacing(15);
        hbox.setAlignment(Pos.CENTER);

        this.setAlignment(Pos.CENTER);

        stateText2.setPrefWidth(50);

        Line line = new Line();
        line.setStrokeWidth(3);
        line.setEndX(800.0);

        Label City = new Label("City:");
        Label State = new Label("State:");

        zipf.setMouseTransparent(true);
        zipf.setEditable(false);
        zipf.setPrefHeight(100);
        zipf.setPrefWidth(180);

        hbox.getChildren().addAll(City, cityText2, State, stateText2, cToZbtn, zipf);
        this.getChildren().addAll(hbox, line);

    }
}

private class BottomRow extends VBox {
    public BottomRow() {
        HBox hbox = new HBox();
        hbox.setPadding(new Insets(15, 10, 15, 10));
        hbox.setAlignment(Pos.CENTER);

        statustf.setEditable(false);
        statustf.setMouseTransparent(true);
        statustf.setPrefWidth(500);

        Label Status = new Label("Status: ");

        hbox.getChildren().addAll(Status, statustf);
        this.getChildren().add(hbox);

    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...