A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 小小太阳 中级黑马   /  2013-5-24 12:17  /  1279 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. public class guidemo2 {
  2. public static void main(String[] args) {
  3. new listenerdemo();
  4. }
  5. }
  6. class listenerdemo
  7. {
  8. private Frame f;
  9. private Button b;
  10. private TextField tf;
  11. listenerdemo()
  12. {
  13.   demo();
  14. }
  15. public void demo()
  16. {
  17.   f = new Frame();
  18.   b = new Button("确定");
  19.   tf = new TextField(30);
  20.   f.setBounds(200, 100, 300, 200);
  21.   f.setLayout(new FlowLayout());
  22.   f.add(b);
  23.   f.add(tf);
  24.     //f.setVisible(true);
  25.   f.addWindowListener(new WindowAdapter(){
  26.    public void windowClosing(WindowEvent e)
  27.    {
  28.     System.exit(0);
  29.    }
  30.    public void windowActivated(WindowEvent e)
  31.    {
  32.     System.out.println("窗体前置");
  33.    }
  34.    public void windowOpened(WindowEvent e)
  35.    {
  36.           System.out.println("窗体打开");
  37.    }
  38.   });
  39.   f.setVisible(true);
  40. }
复制代码
f.setVisible(true);放在最后监听后边和放在监听前边,运行的效果不一样,放在前边,窗体打开时并么有输出窗体打开的文字,谁能给解释一下,

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1 很给力!

查看全部评分

1 个回复

倒序浏览
我的看法:

第一,哥们,你复制的时候最后少了个括号,前面也没有导包。

第二,f.setVisible(true);的作用就是设置可见嘛,你要是放在监听的前面的话,只是把f.setVisible(true)以前的东西给设置了,但是监听没有设置,所以“窗体前置和窗体打开”还仍然处于UNVisible状态。。 所以看不到,一般都是把setVisible(true)放在最后面的。

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1 赞一个!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马