嗨,我想知道您如何通过按钮的mouseclicked事件响应不同的情况。我目前有类似

boolean x = false;
btnExample.addMouseListener(new MouseAdapter() {

    public void mouseClicked(MouseEvent arg0) {
    .
    .
    .


我希望mouseclicked的第一行是一条if语句,用于检查布尔值(x)是否为true / false。我想我的问题是如何访问此变量(x),因为必须将其标记为最终变量(这不是我想要的,因为我需要更改它)?我将在某个时候将x更改为true。

最佳答案

您正在尝试在匿名内部类内部使用局部布尔变量,并且这仅在字段为final时才有效,以防止内部类的变量副本不同步。解决方案是使布尔值成为一个类字段,并且它将在匿名内部类内部可见。
将MouseListener和JButton一起使用不是一个好主意。请改用ActionListener。否则,您的按钮将不会总是表现出预期的效果。例如,禁用按钮不会使监听器无效。




例如。,

public class Foo {
  private boolean myBooleanClassField = false;


}

09-12 17:40