0

我有 TableView,我希望我的程序在用户单击单元格时执行 doSomething()。在 Internet 上搜索(包括 stackoverflow)后,我发现了这个.

尝试了该方法,但我在这些代码上遇到了编译错误:

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

NetBeans 要求我覆盖所有抽象方法,所以我做到了。

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

有什么帮助吗?谢谢你。

4

2 回答 2

2

你可以试试:

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

这里找到

于 2014-03-17T11:28:26.623 回答
-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");
        }
    }
};
....

希望能帮助到你。谢谢你。

于 2014-03-18T08:18:30.357 回答