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