(97)窗体练习:输出路径下的文件或者目录

来源:互联网 发布:淘宝上传俩个相同宝贝 编辑:程序博客网 时间:2024/06/06 03:22

这里写图片描述
这里写图片描述
第一张图:主窗体
第二张图:对话框
需求:在文本框中输入一个目录,点击“转到”或者enter都能将目录对应的文件打印在文本区域中,若不是正确的路径,则弹出对话框

import java.awt.*;import java.awt.event.*;import java.io.*;public class LianXi {    private Frame  f;    private TextField tf;    private Button but;    private TextArea ta;    private  Dialog  d;    private  Label lab;    private Button okbut;    LianXi(){        init();    }    public void init() {        //设置主窗体界面        f=new Frame("myFrame");        f.setSize(500, 400);        f.setLocation(300, 200);        f.setLayout(new FlowLayout());        tf=new TextField(20);        f.add(tf);        but =new Button("转到");        f.add(but);        ta=new TextArea(15,40);        f.add(ta);        //设置对话框界面         d=new Dialog(f,"提示信息",true);         d.setBounds(400, 200, 240, 150);         d.setLayout(new FlowLayout());         lab=new Label();         okbut=new Button("确定");         d.add(lab);         d.add(okbut);        f.setVisible(true);        event();    }    public void event() {        //主窗体监听关闭    f.addWindowListener(new WindowAdapter() {        public void windowClosing(WindowEvent e) {            System.exit(0);        }    });     //对话框中确定按钮监听关闭    okbut.addActionListener(new ActionListener() {        public void actionPerformed(ActionEvent e) {            d.setVisible(false);//这里不能写System.exit(0);主窗体还没操作结束        }    });    //按钮监听按下事件    but.addActionListener(new ActionListener() {        public void actionPerformed(ActionEvent e)        {            showDir();        }       });    //键盘监听enter        tf.addKeyListener(new KeyAdapter() {            public void keyPressed(KeyEvent e) {                if(e.getKeyCode()==KeyEvent.VK_ENTER)                     showDir();            }        });    }    public void showDir()//按钮和键盘敲入回车都能将文件打印在文本区域中,    //他们监听的事件处理方式都是相同的,封装成一个函数,在相应的匿名内部类中调用该方法     {        String str=tf.getText();        //获取目录下的文件        File dir=new File(str);            if(dir.exists()&&dir.isDirectory())            {                ta.setText(null);//每次输入正确目录应该将之前的文本区域文件清空                String [] names=dir.list();                for(String name:names)                {                   ta.append(name+"\r\n");//不能用ta.setText方法,否则只能显示最后一个文件项                 }             }            else            {                String info="您输入的信息:"+tf.getText()+"  是错误的";                lab.setText(info);                  d.setVisible(true);            }    }}
阅读全文
0 0
原创粉丝点击