2017-07-26 94 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)。