10.JAVA之GUI编程弹出对话框Dialog

java 同时被 3 个专栏收录
1 篇文章 0 订阅
1 篇文章 0 订阅
3 篇文章 0 订阅

    感谢这位博主的文章,我将我的一个项目修改得更加完善了。

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 + "\r\n");// 追加文本内容并换行

            }
        } else {

            String info = "您输入的路径" + dirPath + "是错误的,请重新输入!";
            lab.setText(info);//显示文本错误提示信息
            d.setVisible(true);//设置对话框可见。
        }
    }

    public static void main(String[] args) {

        new MyWindowDemo();
    }

}
复制代码


    摘自:星云博客园

  • 1
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值