2016-12-21 4 views
0

初心者からJavaFXへの問題。私は現在、JavaFXプロジェクトに取り組んでいます。私は何とか、テキスト、テキストフィールドと2つのボタンと私のメインウィンドウを作成するために管理:Javafxボタンを整列する際の問題

しかし、私はいくつかのトラブル私はまさにそれになりたいボタンをpositionning(赤満たされたボックス)

Output exampleを持っています

私のlaunchメソッドの一部です(ボタンに関連するコードのみ)。 gridは、専用のGridPane属性です。私はちょうどTextFieldの下、すなわち、送信ボタンと対称的であるためには、左により[終了]ボタンを揃えるために管理することができますどのように

this.grid = new GridPane(); 
this.grid.setPadding(new Insets(15)); 
this.grid.setVgap(2); 
this.grid.setHgap(2); 
this.grid.setAlignment(Pos.CENTER); 

Button submitButton = new Button("Submit"); 
submitButton.setStyle("-fx-font: 20 arial; -fx-base: #b6e7c9; -fx-background-radius: 10, 10, 10, 10;"); 
submitButton.setBackground(new Background(new BackgroundFill(Color.LIGHTGREEN, null, null))); 

Button exitButton = new Button("Exit"); 

exitButton.setTextFill(Color.RED); 
exitButton.setStyle("-fx-font: 20 arial; -fx-base: #dbd8d6; -fx-background-radius: 10, 10, 10, 10;"); 
exitButton.setBackground(new Background(new BackgroundFill(Color.RED, null, null))); 

this.grid.add(submitButton, 0, 2); 
this.grid.add(exitButton, 1, 2); 

? 本当にありがとうございます。

EDIT1: 質問(テキスト)は0です。 TextFieldは0,1です。

TextField answer = new TextField(); 
    answer.autosize(); 
    this.answer = answer.getText(); 
    this.grid.add(answer, 0, 1); 

    Text question = new Text("Hi there ! Press Submit to start! Exit to quit."); 
    question.setFont(Font.font("Century Gothic", FontWeight.BOLD, 22)); 
    question.setFill(Color.BLACK); 
    this.grid.add(question, 0, 0); 
+0

Submitのすぐ横にあるボタンまたはTextFieldの終わりのちょうど下にあるボタンをクリックしますか? – ItachiUchiha

+0

'TextField'が'(0,1) 'にあると仮定します。あなたの終了ボタンは '(1,2)'になっています。なぜなら、そのボタンが整列していないからです。それは別の列にあります。整列するには、ボタンを別のものにラップして、送信整列を左に、終了整列を右に設定する必要があります。 –

+1

"vbox"を作成し、2つのボタンを入れ、グリッドの(0,2);) – azro

答えて

1

は、テキストとテキストフィールドスパン2列行います:テキストとTextFieldのため

EDIT2 コード

TextField answer = new TextField(); 
answer.autosize(); 
this.answer = answer.getText(); 

// node, columnIndex, rowIndex, columnSpan, rowSpan: 
this.grid.add(answer, 0, 1, 2, 1); 

Text question = new Text("Hi there ! Press Submit to start! Exit to quit."); 
question.setFont(Font.font("Century Gothic", FontWeight.BOLD, 22)); 
question.setFill(Color.BLACK); 
this.grid.add(question, 0, 0, 2, 1); 

をして、 "終了" ボタンが右詰めにし、あなたが望むように動作するはずです:

this.grid.add(submitButton, 0, 2); 
this.grid.add(exitButton, 1, 2); 
GridPane.setHalignment(exitButton, HPos.RIGHT); 
+0

これは正解で、時間があれば自分が投稿したものです。すでにGridPaneを使用しているときに、追加のレイアウト成果物(HBoxやVBoxなど)を作成することは絶対にありません。メンテナンスがはるかに難しくなります。 –

+0

ありがとう!本当に素早く便利でした。 – Marrakchino

+0

@Marrakchinoあなたが質問に答えた場合、答えを正しいとマークしてください –

関連する問題