初学java GUI,想用swt写个程序,对里面的事件响应不是很理解,如下:
button.addMouseListener(new MouseAdapter() {
public void mouseDown(MouseEvent e) {
if(btnRepeatEvent.getSelection())
引用界面中的一些输入,调用别的类做一些事情…………
}
}
因为这是个内部类,好像只能引用声明为final的对象,难道我要把与之相关的所有变量全声明为final吗……如果这些变量是需要改变的怎么办?大家平常编程的时候是怎么做的?
button.addMouseListener(new MouseAdapter() {
public void mouseDown(MouseEvent e) {
if(btnRepeatEvent.getSelection())
引用界面中的一些输入,调用别的类做一些事情…………
}
}
因为这是个内部类,好像只能引用声明为final的对象,难道我要把与之相关的所有变量全声明为final吗……如果这些变量是需要改变的怎么办?大家平常编程的时候是怎么做的?
final StringBuilder builder = new StringBuilder();可以
builder.append(...);
不可以在别处重新
builder = new StringBuilder();
Thread th = new Thread(){
public void run(){
System.out.println("a="+a);
}
};
a=2;//如果不声明为final.则后续操作可以更改此变量的值
th.start();
//那么在线程执行时,你觉得该输出0呢还是2呢为了避免上面情况的出现,对于需要在匿名类里引用的局部变量,必须声明为final