2
努力实现:的JavaFX GridPane - 配置控制增长并占据所有可用空间
Text Field 1
和Text Field 3
应占据所有可用空间Button 1
和Button 2
应该有相同的宽度
Issue:
Text Field 1
and Text Field 3
不占用全部可用空间(尽管其增长一度Label
完全显示)
下面是截图:
// Removed imports for brevity
public class GridPaneTest extends Application
{
@Override
public void start(Stage primaryStage)
{
primaryStage.setTitle("GridPane Test");
GridPane gridPane = new GridPane();
// gridPane.setGridLinesVisible(true);
gridPane.setHgap(5);
gridPane.setVgap(5);
gridPane.setPadding(new Insets(5));
TextField tf1 = new TextField("Text Field 1");
GridPane.setHgrow(tf1, Priority.ALWAYS);
gridPane.add(tf1, 0, 0);
TextField tf2 = new TextField("Text Field 2");
GridPane.setHgrow(tf2, Priority.NEVER);
gridPane.add(tf2, 1, 0);
Button button1 = new Button("Button 1");
button1.setMaxWidth(140);
GridPane.setHgrow(button1, Priority.NEVER);
GridPane.setHalignment(button1, HPos.RIGHT);
gridPane.add(button1, 2, 0);
TextField tf3 = new TextField("Text Field 3");
GridPane.setHgrow(tf3, Priority.ALWAYS);
gridPane.add(tf3, 0, 1, 2, 1);
Button button2 = new Button("Button 2 Button 2");
button2.setMaxWidth(140);
GridPane.setHgrow(button2, Priority.NEVER);
GridPane.setHalignment(button2, HPos.RIGHT);
gridPane.add(button2, 2, 1);
Label label1 = new Label(
"Label 1 Label 1 Label 1 Label 1 Label 1 Label 1 Label 1 Label 1 Label 1 Label 1 Label 1");
GridPane.setHgrow(label1, Priority.ALWAYS);
gridPane.add(label1, 0, 2, 3, 1);
primaryStage.setScene(new Scene(gridPane));
primaryStage.show();
}
public static void main(String[] args)
{
launch(args);
}
}
查阅按钮宽度可被设置为'Button.setMaxWidth(Double.MAX_VALUE)' - 为对两个按钮是相同的尺寸。 –