【问题标题】:JAVAFX : Three tableviews => When i select a tableview, the others must be deleted and color removedJAVAFX : 三个 tableviews => 当我选择一个 tableview 时,必须删除其他的并删除颜色
【发布时间】:2019-04-25 21:47:39
【问题描述】:

我有点失落。事实上,我有三个表格视图,当我单击第三个中的一行时,我想从其中两个中删除一个选择。为此,我尝试删除 selectionModel 和 focusModel。然而,颜色仍然存在,这是问题

试用过的代码示例如下:

    private void initOnTableviewChange(TableView<PhrasePo> tableSelected, TableView<PhrasePo> table2, TableView<PhrasePo> table3) {
    tableSelected.selectionModelProperty().addListener((obs, oldSelection, newSelection) -> {
        if (oldSelection == null) {

            if (table2.getSelectionModel() != null) {
                table2.getSelectionModel().clearSelection();
                table2.setSelectionModel(null);
            }

            if (table3.getSelectionModel() != null) {
                table3.getSelectionModel().clearSelection();
                table3.setSelectionModel(null);

            }
        }

    });

}

请你帮我解决这个问题。

感谢您的帮助,祝您有美好的一天。

谨此

文兹

【问题讨论】:

  • 我怀疑 oldSelection 是否为空。在那里放置一个调试语句并检查它是否存在
  • 感谢您的回答。然而,当单击一行时,其他 tableview 必须丢失那里的选择。另一点是当我到达应用程序时。未选择任何内容。
  • 请提供一个minimal reproducible example 来说明问题。
  • 对数据中的依赖关系进行建模(与视图端的一些临时布线相比)
  • 为什么将SelectionModel设置为null?不要这样做。

标签: java user-interface javafx javafx-8


【解决方案1】:

解决办法是:

private void initOnTableviewChange(TableView<PhrasePo> tableSelected, TableView<PhrasePo> table2, TableView<PhrasePo> table3) {
    tableSelected.setRowFactory(tv -> {
        TableRow<PhrasePo> row = new TableRow<>();
        row.setOnMouseClicked(event -> {
            table2.getSelectionModel().clearSelection();
            table3.getSelectionModel().clearSelection();

        });
        return row;
    });

【讨论】:

    猜你喜欢
    • 2016-12-05
    • 1970-01-01
    • 1970-01-01
    • 2014-11-25
    • 2014-10-21
    • 2019-02-26
    • 2020-11-24
    • 1970-01-01
    • 2017-03-12
    相关资源
    最近更新 更多