黑马程序员技术交流社区
标题:
自学java的时候,遇到了一个诡异的bug````快进来看看!
[打印本页]
作者:
liang梁
时间:
2015-7-1 20:59
标题:
自学java的时候,遇到了一个诡异的bug````快进来看看!
先上代码:
import java.awt.*;
import java.awt.event.*;
public class exe1 {
public static void main(String args[]){
Frame frame1 = new TestFrame();
Button b = new Button("press this!");
b.addActionListener(new MyMonitor());
frame1.add(b);
}
}
//以下是自己写的frame
class TestFrame extends Frame{
TestFrame(){
setSize(300,300);
setVisible(true);
setLocation(400,400);
setTitle("Cao Ni Ma!");
setVisible(true);
}
}
//下面是监听器
class MyMonitor implements ActionListener{
public void actionPerformed(ActionEvent e){
System.out.println("ahahahaha!");
}
}
我为了练习实现监听器就随便写了一个小程序.
用eclipse编译运行之后发现,我明明在程序中写了frame1.add(b),按钮却不显示在frame中。
后来发现我在TestFrame的构造器中多写了一句setVisible(true)。如果把这一句删掉,就能正常显示了。
求问这是为什么?
为什么构造器中有两个setVisible(true)就不显示button,只有一个setVisible(true)的时候就能正常显示了呢?
作者:
luorenyu
时间:
2015-7-1 21:07
级别还不够,根本看不懂呀
作者:
liang梁
时间:
2015-7-1 21:33
luorenyu 发表于 2015-7-1 21:07
级别还不够,根本看不懂呀
何为你那么多黑马币
作者:
samove
时间:
2015-7-1 21:54
我看不太懂,还没到那水平,不过学习的过程中,遇到很多有意思的东东,还是很好玩的,特别是解决的时候。
作者:
453203489
时间:
2015-7-2 04:16
awt图形界面相关的东西一直都没碰过。。。
作者:
lvzhfeng
时间:
2015-7-2 04:53
支持一下。。。。。
作者:
yedong313
时间:
2015-7-2 06:34
你这个问题提的有意义吗?一般setVisible(true)是放在主函数中的把,你在一个自定义继承frame的类里面就调用setVisible()方法,以后使用这个类定义新对象的时候都不受控制的显示一个窗口出来,使用起来得多麻烦!
作者:
tinibuzhi
时间:
2015-7-2 22:06
一起学习一下
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2