2016-11-27 78 views
1
public CheckBox createBox(){ 
    CheckBox box = new CheckBox(); 
    box.setText(name); 
    box.setOnMouseClicked(x -> handlePlaying(box)); 
    return box; 
} 

比我將它們添加到GridPane的Java FX變化Halignment的組件

checkBoxes 
      .forEach(x -> gridPane.add(x, checkBoxes.indexOf(x) + 1, 2)); 

現在我想改變Halignment,但我不能找到方法。 PS:我想改變Halignement而不是普通Alignement;我想改變Halignement而不是普通Alignement;我想改變Halignement而不是普通Alignement;

+1

這取決於什麼容器組件在...請你可以發佈自包含的例子... – Adam

回答

0

我相信這個例子說明了Labelled.setAlignment()和GridPane.setHAlignment()之間的區別。

alignment

代碼

@Override 
public void start(Stage primaryStage) throws Exception { 
    GridPane grid = new GridPane(); 
    CheckBox box1 = new CheckBox("horse"); 
    box1.setMinWidth(200); 
    box1.setAlignment(Pos.CENTER_RIGHT); 
    grid.getChildren().add(box1); 
    CheckBox box2 = new CheckBox("banana"); 
    grid.getChildren().add(box2); 
    GridPane.setRowIndex(box2, 1); 
    GridPane.setHalignment(box2, HPos.RIGHT); // <=== this is probably what you want 
    primaryStage.setScene(new Scene(grid)); 
    primaryStage.show(); 
} 

我建議你在編程佈局FXML,但原則同樣適用。在SceneBuilder的佈局選項卡中查找HAlignment屬性...

Labelled.setAlignment()在JavaDoc中已經解釋了這一點,但我可以看出爲什麼這可能會造成混淆。

指定Labeled內的文本和圖形應在 之間如何在標籤內存在空白空間時對齊。

+0

非常感謝!爲我工作。 –