2015-02-09 47 views
0

我想在JavaFX分割面的一側添加一個組件。如何使它填充分割面板的側面板?它看起來像hgrow和vgrow不可用在一個分裂面板上。如何使組件在JavaFX上填充分割面?

實際上,我試圖在分割窗格中添加一個標題窗格。下面的代碼:

public void start(Stage stage) throws Exception { 
    TitledPane titledPane1 = new TitledPane("Panel 1", new Group()); 
    TitledPane titledPane2 = new TitledPane("Panel 2", new Group()); 

    SplitPane rootPane = new SplitPane(); 
    rootPane.getItems().add(titledPane1); 
    rootPane.getItems().add(titledPane2); 

    Scene scene = new Scene(rootPane); 
    stage.setWidth(400); 
    stage.setHeight(300); 
    stage.setScene(scene); 
    stage.show(); 

} 
+1

默認情況下,可調整大小的節點將填充拆分窗格。請[發佈一些代碼](http://stackoverflow.com/help/mcve),它演示未填充拆分窗格的內容。 – jewelsea 2015-02-10 00:14:54

回答

0

您應該使用Pane代替Group

在組的JavaDoc說,

A組將在其子的集體邊界,不能直接調整大小。

編輯(每用戶評論爲)

這裏的問題是不是與窗格但TitledPane,因爲TitledPane擴展Labeled

可以綁定titledPane的使用

在將splitPane的高度高度

titledPane1.prefHeightProperty()。bind(rootPane.heightProperty());

TiltledPane高度結合和其他與Pane工作示例添加到SplitPane

public class StoreNumbers extends Application { 

    public void start(Stage stage) throws Exception { 
     Pane pane1 = new Pane(); 
     Pane pane2 = new Pane(); 
     TitledPane titledPane1 = new TitledPane("Panel 1", pane1); 
     TitledPane titledPane2 = new TitledPane("Panel 2", pane2); 
     SplitPane rootPane = new SplitPane(); 
     rootPane.getItems().add(titledPane1); 
     rootPane.getItems().add(pane2); 

     Scene scene = new Scene(rootPane); 
     stage.setWidth(400); 
     stage.setHeight(300); 
     stage.setScene(scene); 
     stage.show(); 
     pane1.setBorder(new Border(new BorderStroke(Color.BLACK, BorderStrokeStyle.SOLID, null, null))); 
     pane2.setBorder(new Border(new BorderStroke(Color.BLACK, BorderStrokeStyle.SOLID, null, null))); 
     titledPane1.setBorder(new Border(new BorderStroke(Color.BLACK, BorderStrokeStyle.DASHED, null, null))); 
     titledPane2.setBorder(new Border(new BorderStroke(Color.BLACK, BorderStrokeStyle.DASHED, null, null))); 
     titledPane1.prefHeightProperty().bind(rootPane.heightProperty()); 
    } 

    public static void main(String[] args) { 
     launch(args); 
    } 
} 
+0

我使用一個窗格作爲TitledPane的子項進行測試,但它不會改變。 TitledPane仍然不填充其父項,例如SplitPane。 – 2015-02-10 09:57:07

+0

已更新回答.. – ItachiUchiha 2015-02-10 13:44:10

+0

現在使用pref height屬性綁定很好地工作。謝謝 ! – 2015-02-10 21:43:40

1
titledPane1.setMaxHeight(Double.MAX_VALUE); 

還解決了在我見過的情況下,問題。