2017-06-29 29 views
0

我想將節點添加到TitledPane的標題中。我發現這樣做的唯一方法是使用setGraphic()方法。JAVAFX - 將節點添加到TitledPane的標題

使用這種方式的問題是我不能把它們整齊地放置。以下是我得到: Nodes Inside TitledPane's Header

的代碼

 TitledPane tpane = new TitledPane(); 
     tpane.setContent(new Text("Content")); 
     tpane.setExpanded(false); 

     Button b = new Button("Delete");    

     BorderPane box = new BorderPane(); 
     box.setLeft(new Text("1 ")); 
     box.setCenter(new Text("Single Pane"));    
     box.setRight(b);  


     AnchorPane par = new AnchorPane(box); 
     tpane.setGraphic(par); 

     VBox vbox = new VBox(); 
     vbox.getChildren().add(tpane); 

目標

我想把Delete按鈕向右,這就是爲什麼我使用Borderpane。所以BorderPane需要填寫整個TitledPane的標題寬度減去小三角形的空間

怎樣才能在setGraphic()方法內完成?或者有沒有更好的方法來實現它?

+0

我假設你試過沒有錨窗格然後包裹邊框窗格。同樣的結果? –

+0

@James_D我做了,沒有什麼不同。 – KeepMove

回答

1

好吧,看來JavaFX的用戶的支持是不爲主流的框架巨大的。

經過@Austin的建議後,我找到了做我想做的事情的方式,這也是動態調整大小的。

box.prefWidthProperty().bind(scene.widthProperty().subtract(35));

TitledPane tpane = new TitledPane(); 
    tpane.setContent(new Text("Content")); 
    tpane.setExpanded(false); 

    Button b = new Button("Delete");    

    BorderPane box = new BorderPane(); 
    box.setLeft(new Text("1 ")); 
    box.setCenter(new Text("Single Pane"));    
    box.setRight(b);  

    tpane.setGraphic(box); 
    box.prefWidthProperty().bind(scene.widthProperty().subtract(35)); 
    VBox vbox = new VBox(); 
    vbox.getChildren().add(tpane); 
2

要解決您的問題,請嘗試將BorderPane的寬度設置爲場景的寬度減去這樣的箭頭。

TitledPane tpane = new TitledPane(); 
    tpane.setContent(new Text("Content")); 
    tpane.setExpanded(false); 

    Button b = new Button("Delete");    

    BorderPane box = new BorderPane(); 
    box.setLeft(new Text("1 ")); 
    box.setCenter(new Text("Single Pane"));    
    box.setRight(b);  


    AnchorPane par = new AnchorPane(box); 
    tpane.setGraphic(par); 

    VBox vbox = new VBox(); 
    vbox.getChildren().add(tpane); 

    box.setPrefWidth(scene.getWidth()-30);//You can adjust the number to fit your needs and change scene to whatever the name of your scene is 

我希望這有助於