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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 覃宏海 中级黑马   /  2012-9-17 14:49  /  1088 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 覃宏海 于 2012-9-17 15:30 编辑

红色部分是问题点
在监听内部怎么再建立监听?


import java.awt.*;
import java.awt.event.*;
import java.io.File;

public class MyWindowDemo {
        public static void main(String[] args) {
                new MyWindowDemo();
        }
        
        private Frame f;
        private Button        but;
        private TextField tf;
        private TextArea ta;
        private Dialog d;
        private Label l;
        private Button okBut;
        MyWindowDemo(){
                init();
        }
        public void init(){
                f = new Frame();
                f.setBounds(300, 150, 650, 500);
                f.setLayout(new FlowLayout());
               
                tf = new TextField(50);
                but = new Button("转到");
                ta = new TextArea(26,80);
               
                f.add(tf);
                f.add(but);
                f.add(ta);
                        
                ta.setVisible(true);
                f.setVisible(true);
                myEvent();-------------------------------这里建立监听的引用
        }
        
        public void myEvent(){----------------------------监听
                f.addWindowListener(new WindowAdapter(){
                        public void windowClosing(WindowEvent e){
                                System.exit(0);
                        }
                });
                but.addActionListener(new ActionListener(){
                        public void actionPerformed(ActionEvent e){
                                show();---------------------------------调用show
                        }
                });
                tf.addKeyListener(new KeyAdapter(){
                        public void keyPressed(KeyEvent e){
                                if(e.getKeyCode()==KeyEvent.VK_ENTER){
                                        show();
                                }
                        }
                });
                okBut.addActionListener(new ActionListener(){
                        public void actionPerformed(ActionEvent e){
                                d.setVisible(false);
                        }
                });
                d.addWindowListener(new WindowAdapter(){
                        public void windowClosing(WindowEvent e){
                                d.setVisible(false);
                        }
                });
        }
        public void show(){
                String text = tf.getText();
                ta.setText("");
                File dir = new File(text);
                if(dir.exists()&&dir.isDirectory()){
                        String[] names = dir.list();
                        for(String texts : names){
                                ta.append(texts+"\r\n");
                        }
                }        
                else{---------------------------------------------------在else里建立Dialog,如果不在class MyWindowDemo里建立Dialog,那么应该在哪里建议呢?
                        d = new Dialog(f, "我的警告", true);
                        d.setBounds(400,200,300,100);
                        d.setLayout(new FlowLayout());
                        l = new Label("rwtqwaqdfwefc");
                        okBut = new Button("确定");
                        d.add(l);
                        d.add(okBut);
                        d.setVisible(true);--------------------------------------------在这里怎么引用蓝色的监听????
                }
                tf.setText(null);
        }
}

评分

参与人数 1技术分 +1 收起 理由
王德升 + 1 赞一个!

查看全部评分

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马