2021-09-23 GUI(对话框Dialog)

2021-10-24  本文已影响0人  Denholm
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.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.File;

public class MyWindowDemo {

    private Frame f;
    private Button btn;
    private TextField textField;
    private TextArea textArea;

    private Dialog dialog;
    private Label label;
    private Button okButton;

    public MyWindowDemo() {
        init();
    }

    private void init() {
        f = new Frame("my window");
        f.setBounds(300, 100, 600, 500);
        f.setLayout(new FlowLayout());
        textField = new TextField(60);
        btn = new Button("转到");
        textArea = new TextArea(25, 70);

        dialog = new Dialog(f, "提示信息-self", true);
        dialog.setBounds(400, 300, 200, 150);
        dialog.setLayout(new FlowLayout());
        label = new Label();
        okButton = new Button("确定");

        dialog.add(label);
        dialog.add(okButton);

        f.add(textField);
        f.add(btn);
        f.add(textArea);
        myEvent();
        f.setVisible(true);
    }

    private void myEvent() {

        textField.addKeyListener(new KeyAdapter() {

            @Override
            public void keyPressed(KeyEvent e) {
                if (e.getKeyCode() == KeyEvent.VK_ENTER) {
                    showDir();
                }
            }

        });

        okButton.addActionListener(e -> dialog.setVisible(false));

        dialog.addWindowListener(new WindowAdapter() {

            @Override
            public void windowClosing(WindowEvent e) {
                dialog.setVisible(false);
            }

        });

        btn.addActionListener(e -> showDir());

        f.addWindowListener(new WindowAdapter() {

            @Override
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }

        });
    }

    private void showDir() {
        String dirPath = textField.getText();
        File file = new File(dirPath);
        if (file.exists() && file.isDirectory()) {
            textArea.setText("");
            String[] list = file.list();
            for (String name : list) {
                textArea.append(name + "\r\n");
            }
        } else {
            String errorInfo = dirPath + "目录不存在,请重新输入!";
            label.setText(errorInfo);
            dialog.setVisible(true);
        }
        textField.setText("");
    }

    public static void main(String[] args) {
        new MyWindowDemo();
    }
    
}
上一篇下一篇

猜你喜欢

热点阅读