适合 GridPane 的 TextArea
TextArea fit to a GridPane
我是 Java 的新手。
我想将 TextArea
放入 GridPane
。我在过去几个小时里尝试了这个,结果是:
如您所见,TextArea
比我的 Gridpane
大得多。这是我的代码:
GridPane root = new GridPane();
root.setGridLinesVisible(true);
root.setHgap(20);
root.setVgap(8);
root.setPadding(new Insets( 10, 10, 10, 10));
ColumnConstraints col1 = new ColumnConstraints();
col1.setPercentWidth(50);
ColumnConstraints col2 = new ColumnConstraints();
col2.setPercentWidth(50);
root.getColumnConstraints().addAll(col1,col2);
RowConstraints row1 = new RowConstraints();
RowConstraints row2 = new RowConstraints();
RowConstraints row3 = new RowConstraints();
RowConstraints row4 = new RowConstraints();
row1.setPrefHeight(20);
row2.setPrefHeight(20);
row3.setPrefHeight(40);
row4.setPrefHeight(20);
root.getRowConstraints().addAll(row1,row2,row3,row4);
GridPane.setVgrow(root, Priority.ALWAYS);
Label Opt1 = new Label("Operand 1");
Label Opt2 = new Label("Operand 2");
Label Erg = new Label("Ergebnis");
TextArea txtOpt1 = new TextArea();
TextArea txtOpt2 = new TextArea();
TextArea txtErg = new TextArea();
txtErg.setEditable(false);
Button btnPlus = new Button("+");
Button btnMinus = new Button("-");
Button btnMal = new Button("*");
Button btnGeteilt = new Button("/");
HBox Opts = new HBox(10);
HBox hblbl1 = new HBox();
hblbl1.getChildren().add(txtOpt1);
Opts.getChildren().add(btnGeteilt);
Opts.getChildren().add(btnMal);
Opts.getChildren().add(btnMinus);
Opts.getChildren().add(btnPlus);
Opts.setAlignment(Pos.CENTER);
root.add(Opt1, 0, 0);
root.add(Opt2, 0, 1);
root.add(hblbl1, 1, 0);
root.add(txtOpt2, 1, 1);
root.add(Opts, 0, 2, 2, 1);
root.add(Erg, 0, 3);
root.add(txtErg, 1, 3);
the TextArea is much bigger than my Gridpane
因为您将网格窗格的行限制为小于文本区域可以容纳的高度。
看起来您要查找的实际上是 TextField
,而不是 TextArea
。我会删除对行的约束并使用 TextFields
代替:
另外,GridPane.setVgrow(root, Priority.ALWAYS);
什么也不做。 setVgrow
指定 在 网格窗格中的哪个组件应该增长以及如何增长。如果将网格窗格本身指定为组件,则它没有意义。
我是 Java 的新手。
我想将 TextArea
放入 GridPane
。我在过去几个小时里尝试了这个,结果是:
如您所见,TextArea
比我的 Gridpane
大得多。这是我的代码:
GridPane root = new GridPane();
root.setGridLinesVisible(true);
root.setHgap(20);
root.setVgap(8);
root.setPadding(new Insets( 10, 10, 10, 10));
ColumnConstraints col1 = new ColumnConstraints();
col1.setPercentWidth(50);
ColumnConstraints col2 = new ColumnConstraints();
col2.setPercentWidth(50);
root.getColumnConstraints().addAll(col1,col2);
RowConstraints row1 = new RowConstraints();
RowConstraints row2 = new RowConstraints();
RowConstraints row3 = new RowConstraints();
RowConstraints row4 = new RowConstraints();
row1.setPrefHeight(20);
row2.setPrefHeight(20);
row3.setPrefHeight(40);
row4.setPrefHeight(20);
root.getRowConstraints().addAll(row1,row2,row3,row4);
GridPane.setVgrow(root, Priority.ALWAYS);
Label Opt1 = new Label("Operand 1");
Label Opt2 = new Label("Operand 2");
Label Erg = new Label("Ergebnis");
TextArea txtOpt1 = new TextArea();
TextArea txtOpt2 = new TextArea();
TextArea txtErg = new TextArea();
txtErg.setEditable(false);
Button btnPlus = new Button("+");
Button btnMinus = new Button("-");
Button btnMal = new Button("*");
Button btnGeteilt = new Button("/");
HBox Opts = new HBox(10);
HBox hblbl1 = new HBox();
hblbl1.getChildren().add(txtOpt1);
Opts.getChildren().add(btnGeteilt);
Opts.getChildren().add(btnMal);
Opts.getChildren().add(btnMinus);
Opts.getChildren().add(btnPlus);
Opts.setAlignment(Pos.CENTER);
root.add(Opt1, 0, 0);
root.add(Opt2, 0, 1);
root.add(hblbl1, 1, 0);
root.add(txtOpt2, 1, 1);
root.add(Opts, 0, 2, 2, 1);
root.add(Erg, 0, 3);
root.add(txtErg, 1, 3);
the TextArea is much bigger than my Gridpane
因为您将网格窗格的行限制为小于文本区域可以容纳的高度。
看起来您要查找的实际上是 TextField
,而不是 TextArea
。我会删除对行的约束并使用 TextFields
代替:
另外,GridPane.setVgrow(root, Priority.ALWAYS);
什么也不做。 setVgrow
指定 在 网格窗格中的哪个组件应该增长以及如何增长。如果将网格窗格本身指定为组件,则它没有意义。