如何链接这两个鼠标事件?JavaFx
我目前正在做一个需要链接两个鼠标事件的项目。游戏包括比较屏幕上许多气球中两个移动的气球。说明如下:如何链接这两个鼠标事件?JavaFx,java,oop,javafx,event-handling,mouseevent,Java,Oop,Javafx,Event Handling,Mouseevent,我目前正在做一个需要链接两个鼠标事件的项目。游戏包括比较屏幕上许多气球中两个移动的气球。说明如下: 我点击一个有英文文本的气球(鼠标事件1),气球应该停止,我应该得到保留在某处的文本字符串 我点击一个有西班牙语文本的气球(鼠标事件2),气球应该停止,我应该得到保留在某处的文本字符串 单击后,会将英文文本与西班牙文文本进行比较 如果这个词的翻译是正确的,气球会消失,我不会失去生命(“生命”是HBox上的矩形,否则我会失去生命,气球也会消失 我想到的另一件事是: 单击引出序号,引出序号停止(鼠标事件
程序应该知道我点击了那两个气球。然后,我可以使用一种方法来比较气球,以检查翻译是否正确,并使它们消失。您应该向每个气球添加一个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变量应该是类字段,而不是局部变量。我编辑了答案。