Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在JavaFX中将鼠标和事件处理程序组合在一起?_Java_Javafx 2 - Fatal编程技术网

如何在JavaFX中将鼠标和事件处理程序组合在一起?

如何在JavaFX中将鼠标和事件处理程序组合在一起?,java,javafx-2,Java,Javafx 2,我正在创建一个典型的图形软件,在这个软件中,每次单击都可以添加一个节点,在按住Shift键的同时单击节点可以绘制一个顶点,等等。所以我想创建一些用于触发算法的鼠标键组合。例如,Alt+K+Click事件会变成Kruskal图 到目前为止,我已经做了: root.setOnMouseClicked(new EventHandler<MouseEvent>() { @Override public void handle(MouseEvent t) {

我正在创建一个典型的图形软件,在这个软件中,每次单击都可以添加一个节点,在按住Shift键的同时单击节点可以绘制一个顶点,等等。所以我想创建一些用于触发算法的鼠标键组合。例如,Alt+K+Click事件会变成Kruskal图

到目前为止,我已经做了:

root.setOnMouseClicked(new EventHandler<MouseEvent>() {
        @Override
        public void handle(MouseEvent t) {
        if (t.isAltDown()) {

            root.setOnKeyPressed(new EventHandler<KeyEvent>() {
                    @Override
                    public void handle(KeyEvent k) {
                       System.out.println(k.getText());
        }
.....
.....
}
root.setOnMouseClicked(新建EventHandler()){
@凌驾
公共无效句柄(MouseEvent t){
if(t.isAltDown()){
root.setOnKeyPressed(新的EventHandler(){
@凌驾
公共无效句柄(KeyEvent k){
System.out.println(k.getText());
}
.....
.....
}

我得到了一个键的“扫描”缓冲区,但我不知道如何停止它,k.consume不起作用…

如果您将要作为ActionListener执行的操作添加到MenuItem中,您可以使用MenuItem accelerator属性指定将触发它的键组合。以下是一些很好的示例: