2013-10-16 53 views
0

只是爲了測試我想Button這是一個Node到目前爲止是內部TitledPane(我知道它包含一個AnchorPane)。獲取Java FX中錨點窗格內顯示的子節點?

這是我想要的方法一般代碼:

@FXML private void alterarTitledPane(MouseEvent event) { 

     if (event.isShiftDown()) { 

      // Here is where I code for adding a button inside TitledPane     
     } 

     if (!titledPane.isExpanded()) { 

      titledPane.setExpanded(true); 
      titledPane.setText("Expandido"); 
     } 

     else { 

      titledPane.setExpanded(false); 
      titledPane.setText("No expandido"); 
     } 
} 

這是兩個備選方案我已經嘗試實現它:

替代1

((AnchorPane)titledPane.getContent()).getChildren().add(button2); 
button2.toFront(); 
button2.setVisible(true); 

替代2

Group a = new Group(button2); 
((AnchorPane)titledPane.getContent()).getChildren().add(a); 
button2.toFront(); 
button2.setVisible(true); 

了不結果到目前爲止...

+0

的代碼看起來OK。沒有看到整個代碼很難說出問題。創建一個新的新項目並將其複製到只有titledpane,anchorpane和fxml等相關部分,然後重試。如果問題在該項目發佈後仍然存在。 –

+0

奇怪的是,它的工作呢!現在問題是爲什麼?*** – diegoaguilar

回答

0

在窗格中首先你必須initalize它... 嘗試這種添加節點....是工作。

AnchorPane anch = new AnchorPane(); 
Button btn = new Button("anshul"); 
anch.getChildren().add(btn); 
+0

嗯,我通過'FXMLLoaders',我設計SceneBuilder中的場景 – diegoaguilar

+0

是的,它的罰款...所以當你拿控制器在檢查器代碼選擇中定義它的fxid。 ...然後從視圖 - >顯示樣品控制器選擇複製孔代碼...並將其粘貼到控制器文件中,然後完美地工作 –

0
Anchorpane pane=new Anchorpane(); 
Label lbl_user=new Label("Username"); 
Textfield txt=new Textfield(); 
AnchorPane.setTopAnchor(lbl_user, 10.0); 
AnchorPane.setRightAnchor(lbl_user 10.0); 
AnchorPane.setTopAnchor(txt, 40.0); 
AnchorPane.setRightAnchor(txt,10.0); 
panegetChildren().addAll(lbl_user,txt);