【问题标题】:JavaFx : get the last focused tableJavaFx:获取最后一个焦点表
【发布时间】:2017-07-17 06:49:04
【问题描述】:

我有两个TableViews 的视图,我想获取最后选择的表,所以上次选择了表的行。我试过了:

  • table.isFocused() 但它对两个表都返回 false,我猜是因为我选择了一行而不是表本身。

  • table.getFocusModel().getFocusedItem() != null,但如果我在两个表中都选择一行,则两个表都返回 true。

那么我怎样才能得到最后选择的表的行,我有一个肮脏的解决方案,定义一个枚举并为tableView的选择模型添加一个监听器,但我认为有一个更简单的方法,你也是有什么想法吗?对我来说,最好的方法是为一个 tableview 返回 true,为另一个返回 false,当然最后一个选择返回 true。

【问题讨论】:

    标签: java javafx focus tableview javafx-8


    【解决方案1】:

    我看到了下一个解决方案:您有一个临时变量,它将指向最后一个选定的节点,并且您监听 2 个表视图以获得焦点属性:

    Node lastSelectedTable = null;
    
    tableView1.focusedProperty().addListener((observable, oldValue, newValue) -> {
        if (newValue) {
            lastSelectedTable = tableView1;
        }
    });
    
    tableView2.focusedProperty().addListener((observable, oldValue, newValue) -> {
        if (newValue) {
            lastSelectedTable = tableView2;
        }
    });
    

    在“lastSelectedTable”下的任何时候,您都可以参考真正最新的焦点表。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多