当前位置: 首页 > 知识库问答 >
问题:

如何从javafx上的tableview获取选中的索引

邬令
2023-03-14

我对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();
}

}

我的目标是在单击另一个按钮时获得所有选中复选框的描述(旁边的一列)

共有1个答案

贝德辉
2023-03-14

有两种方法可以做到这一点:第一种方法是创建一个复选框列表并遍历它们,然后检查是否(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后才会创建。 您可以在将添加到后将其调用,然后在此调用之后访问。 或者,侦听中的更改并在设置外观后执行该代码。 此外,我建议使用而不是使用来检索标题行(无论如何,您都在使用包)。