Re: [問題] 關於程式寫法的疑問

看板java作者 (阿川)時間15年前 (2011/02/08 09:57), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
※ 引述《poopoo888888 (阿川)》之銘言: : 標題: [問題] 關於程式寫法的疑問 : 時間: Mon Feb 7 10:55:18 2011 : : 大家好 小弟最近在看書自學JAVA : : 想練習寫一個有GUI的記帳小軟體來練功夫 : : : : 這個軟體是這樣的: : : 執行之後 會顯示一個視窗A 裡頭有「款項」跟「金額」 : : 下方則有一個按鈕寫著「新增」 : : 點了新增之後 會跳出另一個視窗B  : : B可以輸入款項與金額 下方有一個按鈕寫著「儲存」 : : 按下儲存之後 視窗B會關閉 而視窗A會新增一筆款項與金額 : : : : 關於這A、B這兩個視窗 我有想到幾種寫法 不知道哪種比較正確? : : 1、A跟B屬於同一個clas : : 2、A跟B屬於不同的class 但屬於同一個thread : : 3、A跟B屬於不同的class 但屬於不同thread : : : 我本來是試著用3的寫法 後來發現好像沒必要使用多執行緒 : : 於是改用2的寫法 又發現屬於不同class的話  : : 為了共用一些資料 需要傳來傳去很麻煩 : : 所以我想應該用1的寫法最棒? : : : : 不知道我的觀念是否正確 : : 請教各位大大 謝謝! : : -- 小弟最後解決這個問題了 但又衍生一些問題想請教各位大大 我把創造視窗B的過程 寫在A視窗「新增」按鈕的actionPerformed內 它大概長這樣 class NewButtonActionListener implements ActionListener{ JDialog dialog; JTextField text1; JTextField text2; JTextArea text3; public void actionPerformed(ActionEvent event){ dialog = new JDialog(frame, "新增款項"); JPanel mainPanel = new JPanel(); //省略其餘步驟 而視窗B的「儲存」按鈕也需要一個的inncer class 也就是說 NewButtonActionListener這個inner class還有一個更內層的class 它大概長這樣 class SaveButtonActionListener implements ActionListener{ public void actionPerformed(ActionEvent event){ //創造一筆新帳款account accountList.add(account); dialog.setVisible(false); refresh(); } }//end inner's inner class 其中的refresh則是主程式的一個函數 用來更新視窗A 它大概長這樣 public void refresh(){ //取出accountList內最新的一筆account //接著將它更新道主frame上面 frame.validate(); } 雖然我完成了我想做的事情 但有幾個問題想請教各位大大 1、我使用frame.validate();來更新frame的畫面   這是更新畫面的正確做法嗎? 2、視窗B是個dialog 我使用dialog.setVisible(false);來關閉視窗B   這是關閉視窗的正確作法嗎? 3、我沒替視窗B的創造過程另寫一個class   而是整個寫在actionPerformed內 這會不會很違背JAVA的物件導向精神? 4、我在inner class內又寫了一個inner class   這種inner class又有inner class的狀況正常嗎?   我這樣的寫法是否太投機取巧? 歹勢 新手上路問題特別多 謝謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.166.197.37
文章代碼(AID): #1DKAC8mx (java)
文章代碼(AID): #1DKAC8mx (java)