2017-07-26 89 views
0

好傢伙進出口新的FXML所以請忽略我的傻問題 這裏有其即時通訊嘗試第2天,但有沒有成功的幾件事情孩子FXML文件不加載到父FXML

  1. 刪除表即空白表的大小應達的 可用的行號(行的數量而變化)
  2. 當錶行(任何顯示值)新FXML文件的用戶點擊是 錨窗格中分配給實現代碼如下(顯示的tableview)開放的,但我想顯示它在主視圖(整個事物表和2文本字段和搜索按鈕在這個馬後面在堆我想在這裏顯示) 主視圖(其他FXML文件僅具有有報頭和側欄)

    作爲顯示在圖像 表的下面鏈路 image of required things

這裏是我的代碼

public void initialize(URL location, ResourceBundle resources) { 
    databaseHandler = DatabaseHandler.getInstance(); 
    initCol(); 

     String qu = "SELECT * FROM country_tbl "; 
     ResultSet rs = databaseHandler.execQuery(qu); 
      try { 
       while (rs.next()) { 
       String id= rs.getString("id"); 
       String name= rs.getString("countryname"); 
       String description = rs.getString("descr"); 
       String country2char= rs.getString("country2char"); 
       String descrshort = rs.getString("descrshort"); 
       data.add(new addcountryController(id,name, description,country2char,descrshort)); 
       } 
      }catch (SQLException ex) { 
       Logger.getLogger(addcountryController.class.getName()).log(Level.SEVERE, null, ex); 
      } 

     tableUser.setItems(null); 
     tableUser.setItems(data); 

     tableUser.getSelectionModel().setSelectionMode(SelectionMode.MULTIPLE); 
     tableUser.getSelectionModel().getSelectedItems().addListener(new ListChangeListener<addcountryController>() { 
     public void onChanged(ListChangeListener.Change<? extends addcountryController> c) { 
      try { 

       FXMLLoader loader =new FXMLLoader(); 
       loader.load(getClass().getResource("/region/updatecountry.fxml").openStream()); 

       updatecountryController usercontroller=(updatecountryController)loader.getController(); 
        for (addcountryController p : c.getList()) { 
        String ADDID=p.getId(); 
        String ADD=p.getName();  
        String ADD1=p.getDescriptionshort(); 
        String ADD2=p.getDescription(); 
        String ADD3=p.getCountrychar(); 
        usercontroller.setText(ADDID,ADD,ADD1,ADD2,ADD3); 
        }      
        StackPane root = loader.getRoot(); 
        stackmain.getChildren().clear(); 
        stackview.getChildren().add(root);  

      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
      } 
     }); 

回答

1

嗨這裏的第一點是解決方案: 您可以設置CELLSIZE在tableView,那麼你就可以用它來排越來越高(我發現這是獲得行高的最簡單方法)。 之後,你必須綁定表的prefHeight您的數據的大小是這樣的:

tableView.setFixedCellSize(20); 
tableView.prefHeightProperty().bind(Bindings.size(data).multiply(tableView.getFixedCellSize()).add(30)); 

有一個.add(30),因爲你必須添加tableHeaderRow的規模,這是最簡單的方法,做了一點試驗並明確設定該值。如果你想得到確切的價值,你可以通過.lookup s來獲得TableHeaderRow然後得到它的高度。

我真的不明白你的第二個問題,你想在哪裏顯示它。您可以使用FXMLLoader加載該視圖並將其添加到該視圖中,但是如果指定了一點點,那麼您確切要添加的位置(其中.fxml以及如何鏈接到包含該表的.fxml)。