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();
    }

}

上篇:9.JAVA之GUI編程列出指定目錄內容                  下篇:   11.JAVA之GUI編程菜單


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM