Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/323.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_Oop_Javafx_Event Handling_Mouseevent - Fatal编程技术网

如何链接这两个鼠标事件?JavaFx

如何链接这两个鼠标事件?JavaFx,java,oop,javafx,event-handling,mouseevent,Java,Oop,Javafx,Event Handling,Mouseevent,我目前正在做一个需要链接两个鼠标事件的项目。游戏包括比较屏幕上许多气球中两个移动的气球。说明如下: 我点击一个有英文文本的气球(鼠标事件1),气球应该停止,我应该得到保留在某处的文本字符串 我点击一个有西班牙语文本的气球(鼠标事件2),气球应该停止,我应该得到保留在某处的文本字符串 单击后,会将英文文本与西班牙文文本进行比较 如果这个词的翻译是正确的,气球会消失,我不会失去生命(“生命”是HBox上的矩形,否则我会失去生命,气球也会消失 我想到的另一件事是: 单击引出序号,引出序号停止(鼠标事件

我目前正在做一个需要链接两个鼠标事件的项目。游戏包括比较屏幕上许多气球中两个移动的气球。说明如下:

  • 我点击一个有英文文本的气球(鼠标事件1),气球应该停止,我应该得到保留在某处的文本字符串
  • 我点击一个有西班牙语文本的气球(鼠标事件2),气球应该停止,我应该得到保留在某处的文本字符串
  • 单击后,会将英文文本与西班牙文文本进行比较
  • 如果这个词的翻译是正确的,气球会消失,我不会失去生命(“生命”是HBox上的矩形,否则我会失去生命,气球也会消失

    我想到的另一件事是:

  • 单击引出序号,引出序号停止(鼠标事件1)
  • 单击引出序号,引出序号停止(鼠标事件2)

  • 程序应该知道我点击了那两个气球。然后,我可以使用一种方法来比较气球,以检查翻译是否正确,并使它们消失。

    您应该向每个气球添加一个EventHandler,并使用另一个变量跟踪第一个或第二个气球。大概是这样的:

    public class ViewController {
    
      private String savedStr;
    
      public void init() {
        for (Baloon baloon : baloons) {
            baloon.setOnMouseClicked(event -> {
                if (savedStr == null) { // Mouse Event 1
                  savedStr = baloon.getString());
                } else { // Mouse Event 2
                  checkTranslation(savedStr, baloon.getString());
                  savedStr  = null;
                }
            }
        }
      }
    }
    

    您应该向每个气球添加一个EventHandler,并使用另一个变量跟踪第一个或第二个气球。大概是这样的:

    public class ViewController {
    
      private String savedStr;
    
      public void init() {
        for (Baloon baloon : baloons) {
            baloon.setOnMouseClicked(event -> {
                if (savedStr == null) { // Mouse Event 1
                  savedStr = baloon.getString());
                } else { // Mouse Event 2
                  checkTranslation(savedStr, baloon.getString());
                  savedStr  = null;
                }
            }
        }
      }
    }
    

    你已经描述了你的问题,但你的问题是什么?你能提供一份工作吗?您希望答案看起来和包含什么?您已经描述了您的问题,但您的问题是什么?你能提供一份工作吗?您希望答案看起来和包含什么?Netbeans说,当我使用此选项时,从lambda表达式引用的局部变量必须是final或实际上是final。我想我用一个内部类解决了这个问题。谢谢,这是真的。savedStr变量应该是类字段,而不是局部变量。我编辑了答案。Netbeans说从lambda表达式引用的局部变量必须是final或有效final。我想我用一个内部类解决了这个问题。谢谢,这是真的。savedStr变量应该是类字段,而不是局部变量。我编辑了答案。