2016-05-11 16 views
0

enter image description hereJavaFxのボタンをこのように変更するにはどうすればよいですか?

[2]:以下はこれまでのことです。私が付けた写真のように見えるようには見えない。

gp.getColumnConstraints().addAll(rc, rc1, rc2); 
      gp.setAlignment(Pos.TOP_CENTER); 
      gp.add(prev, 0, 0); 
      gp.add(search, 1, 0); 
      gp.add(next, 2, 0); 

      Button add = new Button("Add + "); 
      add.setPrefSize(75, 10); 
      add.setOnAction(new EventHandler<ActionEvent>() { 

       @Override 
       public void handle(ActionEvent arg0) { 
        if (!fNameFld.getText().toString().equals("")) { 
         Contact c = new Contact(fNameFld.getText().toString(), numF.getText().toString(), 
           emailf.getText().toString()); 
         contact.add(c); 
         i = contact.indexOf(c); 
         System.out.println(i); 
        } 
       } 
      }); 

      Button edit = new Button("Edit * "); 
      edit.setPrefSize(75, 10); 
      edit.setOnAction(new EventHandler<ActionEvent>() { 
+2

なぜ 'SceneBuilder'で' FXML'を使用しないのですか? 'JavaFX'でGUIを簡単に作成できます。 – Jaims

+0

正確に何か問題がありますか?レイアウト、スタイリング、フォント、テキスト、...? – hotzst

答えて

1

私はこのためにGridPaneを使用しません。実際、GridPaneだけではあなたが望むことができないと確信しています。

あなたは、各行ごとに中央揃えのHBoxを行い、単一のVBoxにそれらの行を置くことができます。

Collection<HBox> buttonRows = Arrays.asList(
    new HBox(6, previous, search, next), 
    new HBox(6, add, edit, remove), 
    new HBox(6, clear, quit)); 
buttonRows.forEach(hbox -> hbox.setAlignment(Pos.CENTER)); 

VBox buttonPane = new VBox(12); 
buttonPane.getChildren().addAll(buttonRows); 

あなたはsetPrefSizeに対するすべての呼び出しを取り除く必要があります。あなたのボタンは、自分のサイズを完全に定義することができます。大きな余白を与えたい場合は、-fx-label-paddingのCSSプロパティを設定します。

関連する問題