我对JavaFX非常陌生,我需要帮助识别表视图中的选中/选中复选框。请参阅我用于在表视图中填充数据的UI和代码的屏幕截图。我正在使用场景生成器创建UI
初始化表视图的代码
public void initialize(URL location, ResourceBundle resources) {
ddUrls.setItems(urls);
ddbrowserNames.setItems(browsers);
ddFrames.setItems(frames);
//testClassCl.setCellValueFactory(new PropertyValueFactory<TestSuite,String>("testClass"));
testMethodCl.setCellValueFactory(new PropertyValueFactory<TestSuite,String>("testMethod"));
testDescCl.setCellValueFactory(new PropertyValueFactory<TestSuite,String>("testDesc"));
//runModeCl.setCellValueFactory(new PropertyValueFactory<TestSuite,Boolean>("runMode"));
runModeCl.setCellFactory(column -> new CheckBoxTableCell());
table.setItems(list);
table.setEditable(true);
}
UI的图像
这是数据模型。
package com.automation.UI;
导入javafx。豆。所有物SimpleboleanProperty;导入javafx。豆。所有物简单财产;
公共类测试套件{
private SimpleStringProperty testClass;
private SimpleStringProperty testMethod;
private SimpleStringProperty testDesc;
private SimpleBooleanProperty runMode;
public TestSuite(String testClass, String testMethod, String testDesc, boolean runMode) {
this.testClass = new SimpleStringProperty(testClass);
this.testMethod = new SimpleStringProperty(testMethod);
this.testDesc = new SimpleStringProperty(testDesc);
this.runMode = new SimpleBooleanProperty(runMode);
}
public String getTestClass() {
return testClass.get();
}
public String getTestMethod() {
return testMethod.get();
}
public String getTestDesc() {
return testDesc.get();
}
public boolean getRunMode() {
return runMode.get();
}
}
我的目标是在单击另一个按钮时获得所有选中复选框的描述(旁边的一列)
有两种方法可以做到这一点:第一种方法是创建一个复选框列表并遍历它们,然后检查是否(checkBox.isSelected()),否则您可能必须遍历所有节点以检查它是否被选中。这里是一个示例
List<Object> checkedList = new ArrayList<>();
for (Object node : vbox.getChildren())
if (checkBox instanceof CheckBox)
if (((CheckBox) checkBox).isSelected())
checkedList.add(node);
然后,您将有一个选中复选框的列表
我目前正在使用 但这并没有返回选择模型中的一个选定项。
问题内容: 如何从JavaFX中的中获取所选项目? 我目前正在使用 但这并没有给我返回选择模型中的一个选择项。 问题答案: 好的,假设您有一个名为的数据模型类。这条路: 请注意,必须使用a 作为类型参数以避免转换: 要么 选择行后,您将返回一个实例。然后对该实例执行任何您想要的操作。
我在许多地方看到了关于如何使用代码获取表头的示例 像这里:如何防止TableView从做TableColsta重新排序在javaFX 8? 但是这个代码为我返回。 如何到达然后?
问题内容: 我正在一个项目中,我想获取选定的tableview数据,但我正在使用FXML。 我有无FXML的代码,但无法将其用于FXML。 码: TestController: 现在我想知道我该如何编码以从tableview获取选定的数据 请帮我。 谢谢。 问题答案: 如果要选择行索引,请使用
问题内容: 我在许多地方看到了有关如何通过代码获取表头的示例 但是这段代码为我返回。 怎么到达呢? 问题答案: 的创建者为,而默认值只有在应用CSS后才会创建。 您可以在将添加到后将其调用,然后在此调用之后访问。 或者,侦听中的更改并在设置外观后执行该代码。 此外,我建议使用而不是使用来检索标题行(无论如何,您都在使用包)。