tableview - 检测 TableView JavaFX 2 ROW 上的双击

标签 tableview javafx-2

我环顾四周并注意到这篇文章中给出的回复: Detect doubleclick on row of TableView JavaFX

但是,这篇文章使用了 lambda 表达式,我不确定如何将它们转换为在 JavaFX 2 代码中使用。我的主要目标是能够单击一行,然后弹出一个新窗口,其中包含该行中存储的信息。只要我能让回调工作,我就能从那里得到它!任何建议将不胜感激。

table.setRowFactory( tv -> {
    TableRow<MyType> row = new TableRow<>();
    row.setOnMouseClicked(event -> {
        if (event.getClickCount() == 2 && (! row.isEmpty()) ) {
            MyType rowData = row.getItem();
            System.out.println(rowData);
        }
    });
    return row ;
 });

最佳答案

给你:

table.setRowFactory(tv -> {
    TableRow<MyType> row = new TableRow<>();
    row.setOnMouseClicked(new EventHandler<MouseEvent>() {
        @Override
        public void handle(MouseEvent event) {
            if (event.getClickCount() == 2 && (!row.isEmpty())) {
                MyType rowData = row.getItem();
                System.out.println(rowData);
            }
        }
    });
    return row;
});

根据您的 IDE,当光标位于 setOnMouseClicked() 的括号中时,您通常可以按 ctrl + space,它会告诉您需要执行什么操作。然后您可以输入 new EventHandler (或任何需要的内容),按 Enter 键,大多数 IDE 会自动为您完成完整的方法。然后你就可以粘贴内脏了。

关于tableview - 检测 TableView JavaFX 2 ROW 上的双击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42219086/

相关文章:

swift - TableView 数据源值更新问题

ios - 如何直接调用tableView方法?

ios - 删除部分的最后一行会导致崩溃

swift - Userdefaults Tableview 地标 Swift 3

swift - 强制施放真的很糟糕并且应该始终避免吗?

java - media.getDuration().toSeconds() 在某些歌曲上返回 0

javafx-2 - 如何在WebView中自动滚动到末尾?

java - 将多个jar合并为一个(使用maven)

java - 为什么 ComboBox 会消耗 KeyCode.ESCAPE 以及解决方法是什么?

netbeans - 如何保存时编译?