美文网首页
2021-09-23 GUI(对话框Dialog)

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

作者: Denholm | 来源:发表于2021-10-24 20:06 被阅读0次
    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();
        }
        
    }
    

    相关文章

      网友评论

          本文标题:2021-09-23 GUI(对话框Dialog)

          本文链接:https://www.haomeiwen.com/subject/eqxagltx.html