当用户点击表格行(任何显示值)时,将打开新的fxml文件 为tableview分配的Anchor窗格(显示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();
}
}
});
答案 0 :(得分:2)
嗨,这里的第一点是解决方案:
您可以在tableView
中设置您的cellSize,然后您就可以将它用于行高(我发现这是获取行高度的最简单方法)。
之后,您必须将表的prefHeight
绑定到您的数据大小,如下所示:
tableView.setFixedCellSize(20);
tableView.prefHeightProperty().bind(Bindings.size(data).multiply(tableView.getFixedCellSize()).add(30));
有一个.add(30)
,因为你必须添加tableHeaderRow的大小,这是最简单的方法,做一些实验并明确设置该值。如果您希望得到确切的值,可以通过.lookup
s来获取TableHeaderRow
,然后获得它的高度。
我真的不明白你的第二个问题你想在哪里显示它。您可以使用FXMLLoader加载该视图并添加到该视图中,但如果您指定一点点更好,您确切想要添加哪个({1}},以及如何与.fxml
链接包含表格。