2016-05-11 38 views
0

enter image description here如何將我的JavaFx按鈕更改爲完全一樣?

[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中,並把這些行成一個單一的垂直框:

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屬性。

相關問題