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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© zhoubinjian 金牌黑马   /  2016-4-29 20:57  /  427 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

*/

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

class Demo
{
        private Frame f;//显示窗口
        private TextField tf;//输入框
        private TextArea ta;//文本框
        private Button but;//按键

        private Dialog d;;//对话窗口
        private Button isok;
        private Label lab;//提示标签

        //菜单
        private MenuBar mb;//菜单栏
        private Menu m,m1;//菜单(是属于菜单栏中的)
        private MenuItem closeItem,item,item1;//菜单项(是属于菜单 中的)


        Demo()
        {
                init();
        }
        public void init()
        {
                f=new Frame("my window");
                f.setBounds(600,400,800,600);
                f.setLayout(new FlowLayout());
                tf=new TextField(60);
                but=new Button("转到");
                ta=new TextArea(25,40);
                //初始化菜单
                mb=new MenuBar();
                m=new Menu("菜单");
                m1=new Menu("子菜单");
                closeItem=new MenuItem("退出");
                item=new MenuItem("菜单项");
                item1= new MenuItem("子菜单的菜单项");

                f.add(tf);
                f.add(but);
                f.add(ta);
                //添加菜单
                f.setMenuBar(mb);//在显示窗口中添加菜单栏是通过setMenuBar()方法
                mb.add(m);
                m.add(item);
                m.add(m1);
                m1.add(item1);
                m.add(closeItem);
               




                d=new Dialog(f,"提示信息",true);//对话框要为true,才会显示
                lab=new Label();
                isok=new Button("OK");
                d.setBounds(600,400,300,250);//设置对话框的位置(离屏幕左边距离,离屏幕右边距离,长,宽)
                d.setLayout(new FlowLayout());//设置对话框的布局,这里设置了流水布局
               
               
                d.add(lab);
                d.add(isok);
               
                myEvent();//调用事件监听

                f.setVisible(true);//窗口默认是隐藏的,需要调用此函数才能显示窗口
        }

        public void myEvent()//事件监听函数
        {
                tf.addKeyListener(new KeyAdapter()//键盘监听
                        {
                                public void keyPressed(KeyEvent e)
                                {
                                        if(e.getKeyCode()==KeyEvent.VK_ENTER)//按下enter键,实现相对应的操作
                                                showDir();
                                }
                        });
                d.addWindowListener(new WindowAdapter()//窗口监听
                        {
                                public void windowClosing(WindowEvent e)
                                {
                                       
                                        d.setVisible(false);//按下右上角x键,关闭窗口
                                }
                        });       
                        //注意:addActionListener,这个事件没有适配器
                but.addActionListener(new ActionListener()//button动作监听,按下button键,实现相对应的操作
                        {
                                public void actionPerformed(ActionEvent e)
                                {
                                       
                                        showDir();
                                }
                        });
                f.addWindowListener(new WindowAdapter()
                        {
                                public void windowClosing(WindowEvent e)
                                {
                                        System.exit(0);//退出程序
                                }
                        });       
                closeItem.addActionListener(new ActionListener()//动作监听,按下菜单中的  退出键  退出程序
                        {
                                public void actionPerformed(ActionEvent e)
                                {
                                       
                                        System.exit(0);
                                }
                        });
        }

        public void showDir()
        {
                String dirPath=tf.getText();//获取  输入框  的文本信息
                                        File dir=new File(dirPath);
                                               
                                                if(dir.exists() && dir.isDirectory())//判断获取的信息是否存在,是否是目录
                                                {
                                                        ta.setText("");
                                                        String[] names=dir.list();//只有目录存在,才能list,列出目录里面的内容
                                                        for(String name:names)
                                                        {
                                                                ta.append(name+"\r\n");
                                                                //append()此方法是  文件框  的方法,从原有的内容末尾添加,所以不会覆盖原有内容
                                                                //ta.setText(name);
                                                        }
                                                }
                                                else
                                                {
                                                        String info="您输入的信息有误........."+dirPath+"请重新输入";
                                                        lab.setText(info);//将内容加入到提示标签
                                                        d.setVisible(true);
                                                }

                                       
                                        tf.setText("");//每次显示目录都清空原有的目录信息
        }

        public static void main(String[] args)
                {
                       
                        new Demo();
                }

}

0 个回复

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