孩子FXML文件不加载到父FXML
问题描述:
好家伙进出口新的FXML所以请忽略我的傻问题 这里有其即时通讯尝试第2天,但有没有成功的几件事情孩子FXML文件不加载到父FXML
- 删除表即空白表的大小应达的 可用的行号(行的数量而变化)
-
当表行(任何显示值)新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();
}
}
});
答
嗨这里的第一点是解决方案: 您可以设置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
)。