我在设置按钮对齐时遇到了我认为可能存在的错误。首先,我想清楚地说明设置按钮的对齐方式可能不是正确的方法,但是,我想概述我认为仍然可能存在错误。
我注意到它在一个带有标签窗格的应用程序中,两个连续标签上有按钮。当我在一个选项卡上设置按钮的对齐时,它会导致另一个选项卡上的按钮表现异常,使得文本在按钮上保持对齐,但在将鼠标悬停在按钮上时会集中。
我已将此行为简化为以下JavaFX应用程序,这是启动方法:
public void start(Stage stage) throws Exception {
Button b1 = new Button("A button");
b1.setPrefSize(120, 50);
Button b2 = new Button("Another button");
b2.setPrefSize(120, 50);
b2.setAlignment(Pos.CENTER); //try comment this line out
TabPane tp = new TabPane();
Tab t1 = new Tab("First tab", b1);
Tab t2 = new Tab("Second tab", b2);
tp.getTabs().addAll(t1, t2);
BorderPane root = new BorderPane();
root.setCenter(tp);
stage.setScene(new Scene(root));
stage.show();
}
如果您运行该应用程序,您会注意到第一个选项卡上名为“A按钮”的按钮上的文本是左对齐的,但是当您将鼠标悬停在该按钮上时,它会集中对齐。
如果你注释掉代码行:b2.setAlignment(Pos.CENTER);那么这种行为就会停止所以我不明白为什么在另一个标签上设置另一个按钮实例的对齐是对按钮b1产生这种影响?