Java的GUI學習十(彈出對話方塊Dialog)
阿新 • • 發佈:2018-12-01
我愛樓主真的哈哈哈哈學習來自 http://www.cnblogs.com/xingyunblog/p/3870207.html
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 GUI9 { private Frame f; private TextField tf; private Button but; private TextArea ta; private Dialog d; private Label lab; private Button okbut; GUI9(){ init(); } public void init() { f = new Frame("Galesaur");//建立窗體物件 f.setBounds(300,100,600,500);//設定窗體位置和大小 f.setLayout(new FlowLayout()); //設定窗體佈局為流式佈局 f.setVisible(true); //設定窗體可見 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();//載入事件處理 } private void myEvent() { //ok按鈕監聽器 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(); //按下轉到之後也是執行showDir() } }); //窗體關閉監聽器 f.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } }); } private void showDir() { // TODO Auto-generated method stub String dirPath = tf.getText();//獲取單行文字內容 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 GUI9(); } }
圖: