将click事件添加到JavaFX TableCell

时间:2014-03-17 11:24:11

标签: java javafx mouseevent tablecell tablecolumn

我有TableView,当用户点击一个单元格时,我想让我的程序执行doSomething()。在Internet上搜索(包括stackoverflow)后,我找到了this

试过那个方法,但是我在这些代码上遇到了编译错误:

EventHandler click = new EventHandler() {
    public void handle(MouseEvent t) {
        System.out.println("CLICKED");
    }
};

NetBeans要求我覆盖所有的abscract方法,所以我做了。

EventHandler click = new EventHandler() {
    @Override
    public void handle(MouseEvent t) {
        System.out.println("CLICKED");
    }
};

仍有同样的错误:

error: method does not override or implement a method from a supertype

如果我删除了@Override注释,我得到了:

error: <anonymous pengamatan.penginderaan.FXMLDocumentController$4> is not abstract and does not override abstract method handle(Event) in EventHandler

有任何帮助吗?谢谢。

2 个答案:

答案 0 :(得分:1)

您可以尝试:

cell.addEventFilter(MouseEvent.MOUSE_CLICKED, new EventHandler<MouseEvent>() {
    @Override
    public void handle(MouseEvent event) {
         System.out.println("cell clicked!");
    }
});

找到here

答案 1 :(得分:-4)

找到解决方案!这是代码:

....
import javafx.scene.input.MouseEvent;
....
....
EventHandler click = new EventHandler<MouseEvent>() {
@Override
    public void handle(MouseEvent t) {
        if(t.getClickCount()>1) {
        System.out.println("DOUBLE CLICK");
        }
    }
};
....

希望它有所帮助。谢谢。