黑马程序员技术交流社区
标题:
学GUI 遇到的小问题
[打印本页]
作者:
肖居上
时间:
2011-11-1 20:09
标题:
学GUI 遇到的小问题
下面代码是鼠标进入按钮时记录进入次数:
package awtTest;
import java.awt.*;
import java.awt.event.*;
public class ListenerTest{
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
new Frames();
}
}
class Frames{
private Frame f;
private Button b;
public Frames(){
f=new Frame("My Frame");
f.setBounds(333, 444, 555, 666);
b=new Button("关闭");
f.add(b);
f.setLayout(new FlowLayout());
f.setVisible(true);
Events();
}
public void Events(){
f.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
b.addMouseListener(new MouseAdapter(){
int count=1;//放在这里运行正确。
public void mouseEntered(MouseEvent e){
//当把int count=1;放到此处时,运行代码后不管鼠标进入按钮多少次都打印出:进入1次,
System.out.println("进入"+(count++)+"次");
}
});
}
}
为什么会这样?
作者:
宁超
时间:
2011-11-1 20:23
放在里面的话,每次触动鼠标进去都是1。
作者:
罗亚东
时间:
2011-11-1 21:02
你如果放到里面的话,每次触动鼠标,会打印count的值,因为是count++,所以先打印count的值,这里是1,然后再加1,然后count会被垃圾回收期回收,所以下一次还是1。这是我的理解,不知道对不对。
作者:
张邦庆
时间:
2011-11-1 21:11
你换成(++count)
作者:
史晓霞
时间:
2011-11-4 22:27
是不是不应该把int count=1;放到方法内部啊
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2