zoukankan      html  css  js  c++  java
  • 10.JAVA之GUI编程弹出对话框Dialog

    在上节基础上添加对话框显示错误信息。

    代码如下:

    /*弹出对话框显示错误信息,对话框一般不单独出现,一般依赖于窗体。*/
    /*练习-列出指定目录内容*/
    import java.awt.Button;
    import java.awt.Dialog;
    import java.awt.FlowLayout;
    import java.awt.Frame;
    import java.awt.Label;
    import java.awt.TextArea;
    import java.awt.TextField;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.event.KeyAdapter;
    import java.awt.event.KeyEvent;
    import java.awt.event.WindowAdapter;
    import java.awt.event.WindowEvent;
    import java.io.File;
    
    class MyWindowDemo {
        private Frame f;
        private TextField tf;
        private Button but;
        private TextArea ta;
        private Dialog d;
        private Label lab;
        private Button okBut;
    
        MyWindowDemo() {
            init();
        }
    
        public void init() {
            f = new Frame("by 星云");// 创建窗体对象
            f.setBounds(300, 100, 600, 500);// 设置窗体位置和大小
            f.setLayout(new FlowLayout());// 设置窗体布局为流式布局
    
            tf = new TextField(60);// 创建单行文本对象60长度大小字符
    
            but = new Button("转到");// 创建按钮对象
    
            ta = new TextArea(25, 70);// 创建多行文本对象25行,70列
    
            d = new Dialog(f, "提示信息-self", true);//弹出的对话框
            d.setBounds(400, 200, 350, 150);//设置弹出对话框的位置和大小
            d.setLayout(new FlowLayout());//设置弹出对话框的布局为流式布局
            lab = new Label();//创建lab标签填写提示内容
            okBut = new Button("确定");//创建确定按钮
    
            d.add(lab);//将标签添加到弹出的对话框内
            d.add(okBut);//将确定按钮添加到弹出的对话框内。
    
            f.add(tf);// 单行文本添加到窗体上
            f.add(but);// 按钮添加到窗体上
            f.add(ta);// 多行文本添加到窗体上
    
            myEvent();// 加载事件处理
            f.setVisible(true);// 设置窗体可见
    
        }
    
        private void myEvent() {
    
            // 确定按钮监听器
            okBut.addActionListener(new ActionListener() {
    
                public void actionPerformed(ActionEvent e) {
                    d.setVisible(false);
                }
    
            });
    
            //文本框兼容器
            tf.addKeyListener(new KeyAdapter() {
                public void keyPressed(KeyEvent e) {
                    if (e.getKeyCode() == KeyEvent.VK_ENTER)//如果按下回车键执行showDir()功能函数
                        showDir();//调用功能函数
                }
    
            });
    
            // 对话框监听器
            d.addWindowListener(new WindowAdapter() {
                public void windowClosing(WindowEvent e) {
    
                    d.setVisible(false);//设置对话框不可见
    
                }
    
            });
    
            // 按钮事件监听器
            but.addActionListener(new ActionListener() {
    
                public void actionPerformed(ActionEvent e) {
                    showDir();
                }
    
            });
            // 窗体关闭监听器
            f.addWindowListener(new WindowAdapter() {
                public void windowClosing(WindowEvent e) {
                    System.exit(0);
    
                }
    
            });
    
        }
    
        //showDir()功能函数
        private void showDir(){
            String dirPath = tf.getText();// 获取单行文本内容保存到字符串dirPath中
            File dir = new File(dirPath);// 将字符串dirPath封装成文件
    
            // 如果文件存在,而且是个目录执行下列操作
            if (dir.exists() && dir.isDirectory()) {
                ta.setText(null);// 没打开一个目录前清空多行文本内容
                String[] names = dir.list();// 文件目录列表存放到字符数组中
                for (String name : names) {
                    ta.append(name + "
    ");// 追加文本内容并换行
    
                }
            } else {
    
                String info = "您输入的路径" + dirPath + "是错误的,请重新输入!";
                lab.setText(info);//显示文本错误提示信息
                d.setVisible(true);//设置对话框可见。
            }
        }
    
        public static void main(String[] args) {
    
            new MyWindowDemo();
        }
    
    }

    上篇:9.JAVA之GUI编程列出指定目录内容                  下篇:   11.JAVA之GUI编程菜单

  • 相关阅读:
    Mac OS X系统下编译运行C代码
    Android intent传递list或对象
    Android中实现自定义的拍照应用
    由闭包引起的对javascript代码可维护性的思考
    让浏览器非阻塞加载javascript的几种方式
    Javascript中正则表达式的全局匹配模式
    解读JavaScript代码 var ie = !-[1,]
    Javascript中闭包的作用域链
    WPF代码注意事项,开发常见问题,知识总结
    WPF绑定各种数据源之object数据源
  • 原文地址:https://www.cnblogs.com/xingyunblog/p/3870207.html
Copyright © 2011-2022 走看看