# Windowbuilder&GUI ## Windowbuilder的下載方法 ![](https://i.imgur.com/z4W2Y5y.png) ## 一個GUI程式的目錄開法 - GuiProject - src - tw.com.xxx.controller - CountController.java - tw.com.xxx.model - CountNumber.java - tw.com.xxx.view - CountView.java(Jframe) - tw.com.xxx.dbutils - CountDB.java ## GUI程式介面設計 - 避免跑板用以下設定: ![](https://i.imgur.com/GtfWJUg.png) - 拖移元件功能 - JLabel - 文字方塊 - 課堂指定欄位 - 編號 - 姓名 - 年紀 - 信箱 - JTextField - 輸入框 - 設定Variable `input_eName` 設定錯誤會讓其他功能失效喔! - Jbutton - 按鈕 - 點兩下元件會產生程式碼 - 要對按鈕撰寫的程式碼 ```java= String id=input_eid.getText(); ... 總之把有的欄位內容都送入 System.out.println(id+","+name);//做個列印測試效果 ``` 正式/送出存入整個按鈕元件應該這樣寫︰ ```java= Employee emp = new Employee(); emp.setEid(Integer.parseInt(input_eid.getText())); //型態轉換(id在關聯檔案中是被宣告為整數型態) emp.seteName(input_eName.getText()); emp.seteAge(input_eAge.getText()); emp.seteEmail(input_eEmail.getText()); //這個功能是一個彈出視窗 JOptionPane.showMessageDialog(null, emp.toString()); //以下功能是把輸入的文字清空 input_eid.setText(""); input_eName.setText(""); input_eAge.setText(""); input_eEmail.setText(""); ``` - 對齊工具:第一個選要參照的 - 在整個程式的main method中加入 ```java= frame.setLocationRelativeTo(null); //這是視窗預設居中的功能 frame.setResizable(false); //這是是否讓使用者改視窗大小的功能 ``` - 對整個專案右鍵選Export-Runnable JAR flie - 輸出可執行的Java檔案 - 備註:專案有驚嘆號的處理方法很複雜[(可以看看這篇文章)](https://dotblogs.com.tw/newmonkey48/2018/03/16/140815),可能重新開一個空的Project用複製的方式搬運過去會更簡單一點... - 應該通常發生在有資源丟失的情形?例如Path跑掉 ## 更多秘訣 - Menu選單要開啟新彈出視窗只要把另一個JFrame main方法中的內容貼到新增的Action中即可 - 當有多個選擇戳記時,若只希望多選一,把它們選起來加入button group中 - 下拉式選單要新增選項加在model的設定中