我正在尝试仅在jButton1之后单击jButton2时打印“Hello”,并且仅在jButton1之后单击任何其他jButton时打印“Bye”。目前,以下代码不会打印任何内容。
public void MouseClicked(java.awt.event.MouseEvent e){
if (e.getSource() == jButton1) {
if (e.getSource() == jButton2) {
System.out.println ("Hello");
} else {
System.out.println ("Bye");
}
}
}
答案 0 :(得分:2)
此代码有两个问题。
MouseClicked
应该是mouseClicked
(小写的第一个字母)和父(超级)类一样,以便覆盖它并捕获鼠标事件。if-else
语句没有意义,因为每次点击都会调用此方法,并且不会保存以前点击其他按钮的状态。此代码适合您。
boolean button1ClickedLast = false;
public void mouseClicked(java.awt.event.MouseEvent e){
if (e.getSource() == jButton1) {
button1ClickedLast = true;
System.out.println ("Bye");
}
else if (e.getSource() == jButton2) {
if(button1ClickedLast) {
System.out.println ("Hello");
}
else{
// do nothing or something if you want
}
}
else {
button1ClickedLast = false; // to change status to false in case any other button is clicked last
}
}
答案 1 :(得分:0)
事件一次只能来自一个按钮。因此,在第一个按钮eventListener中,添加将事件记录在布尔变量中的代码,然后在第二个按钮的eventListener中检查该变量,以确保单击了这两个按钮。