【问题标题】:JavaFX Flow Pane AlignmentJavaFX 流窗格对齐
【发布时间】:2021-10-23 06:11:38
【问题描述】:

我正在创建一个贷款计算器,但现在确定如何对齐流程窗格的位置,以便所有内容都居中,因为它目前是倾斜的。

public class Main extends Application {
 
    private HBox hboxAnnualIntRate = new HBox(lbAnnualIntRate,tfAnnualInterestRate);
    private HBox hboxNumberOfYears = new HBox(lbNumberOfYears,tfNumberOfYears);
    private HBox hboxLoanAmount = new HBox(lbLoanAmount,tfLoanAmount);
    private HBox hboxMonthlyPayment = new HBox(lbMonthlyPayment,tfMonthlyPayment);
    private HBox hboxTotalPayment = new HBox(lbTotalPayment,tfTotalPayment);

    @Override
    public void start(Stage primaryStage) throws Exception{

        primaryStage.setTitle("Loan Calculator");
        FlowPane rootNode = new FlowPane(20,20);
        rootNode.setAlignment(Pos.CENTER);
        Scene scene = new Scene (rootNode, 500, 300);
        primaryStage.setScene(scene);

      
        calculateButton.setOnAction(actionEvent -> {
            calculatePayment();
        });
        rootNode.getChildren().addAll(hboxAnnualIntRate,hboxNumberOfYears,hboxLoanAmount,hboxMonthlyPayment,hboxTotalPayment,calculateButton);
        primaryStage.show();
    }

【问题讨论】:

  • 这些行居中。拿出尺子,在中间划一条线,然后测量左右。
  • 在此处使用反引号而不是直引号格式化您的代码。并在顶部 底部使用三次反引号。我在这里为你解决了这个问题。
  • 可能是GridPane,如Aligning Content & Centering the Grid所示。

标签: java user-interface javafx


【解决方案1】:

正如 @trashgod 在 cmets 中提到的,您可以使用 GridPane

public class App extends Application {

    @Override
    public void start(Stage stage) {

        Label lbl1 = new Label("Annual Interest Rate:");
        Label lbl2 = new Label("Number Of Years:");
        Label lbl3 = new Label("Loan Amount:");
        Label lbl4 = new Label("Monthly Payment:");
        Label lbl5 = new Label("Total Payment:");
    
        TextField tf1 = new TextField();
        TextField tf2 = new TextField();
        TextField tf3 = new TextField();
        TextField tf4 = new TextField();
        TextField tf5 = new TextField();
    
        Button button = new Button("Calculate");

        GridPane gp = new GridPane();
    
        gp.addColumn(0, lbl1, lbl2, lbl3, lbl4, lbl5);
        gp.addColumn(1, tf1, tf2, tf3, tf4, tf5);
        gp.add(button, 2, 4);
    
        gp.setHgap(5d);
        gp.setVgap(10d);
    
        gp.setPadding(new Insets(20));

        Scene scene = new Scene(new StackPane(gp));
    
        stage.setScene(scene);

        stage.show();
    }

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

}

输出:

【讨论】:

    猜你喜欢
    • 2014-09-17
    • 2021-04-06
    • 1970-01-01
    • 2015-06-24
    • 1970-01-01
    • 2019-04-14
    • 2016-07-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多