2017-04-14 6 views
-1

저는 Java가 처음이에요.TextArea가 GridPane에 적합

나는 을 GridPane에 맞추고 싶습니다. 나는이 결과 지난 몇 시간 동안이 시도 :

보시다시피

enter image description here

TextAreaGridpane보다 훨씬 크다. 여기 내 코드입니다 :

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); 
+0

grid.add (textArea)를 시도 했습니까? – Aaron

+0

[mcve]를 참조하십시오. 코드가 실행 가능하지 않습니다. – user1803551

답변

1

텍스트 영역 내 Gridpane보다 훨씬 더 큰

당신이 어떤 텍스트 영역이 할 수있는보다 작은 높이로 격자 패널의 행을 제한하기 때문에

당신이 찾고있는 것이 실제로는 TextField이 아니고 TextArea이 아닌 것 같습니다. 나는 행에 제약을 제거하고 대신 TextFields을 사용 :

enter image description here

또한, GridPane.setVgrow(root, Priority.ALWAYS);는 아무것도하지 않습니다. setVgrow내에서 내의 구성 요소를 지정하고 격자 창이 커야합니다. 격자 창 자체를 구성 요소로 지정하면 의미가 없습니다.