[問題] 關於Windowing
最近教授有教怎麼做出簡單&上面有按鈕的程序
那...教授叫我們做出一個程序
有八個按鈕, 然後一開始程序就會設定每種按鈕的顏色, 然後點擊按鈕的時候會變換
那個被點擊的按鈕的框框會自動改變隨機的顏色.
/////////想像//////// START
以下是想像的程序碼
int x = 0;
if x = 1 那就是我第一個按鈕
就是設定一個Counter, 像我的程序碼一樣, 然後每一個數字代表一個JButton
就是如果counter ++, 那麼counter在2的時候就是會自動的等於我的JButton
再利用X.setBackground(XXXX顏色), 可是因為我知道教授給我的數目是八個
所以我就利用JButton one, two, three four到eight
萬一教授沒有指定框框數目可是又要求我們把每一個框框隨機不同顏色,點擊不同
的顏色怎麼辦?
簡單來說, 要怎麼設定N個框框, 隨機顏色很簡單, 可是還有另一個重點就是
ActiveListener的GetSource要怎麼把他設定成只要是我剛剛設定的N個框框要是被點擊
就會自動改變顏色?
/////////想像//////// END
可是問題是我不會讓X = 1 等於一個JButton
所以我就寫出以下的程序, 可以完成老師要求的事, 可是我不知道有什麼更簡單的方法
可以做出相同的事情
Frame:
http://nopaste.csie.org/211d0
Main:
http://nopaste.csie.org/50a20
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 173.56.121.140
※ 編輯: BlackMatrix 來自: 173.56.121.140 (02/20 14:52)
※ 編輯: BlackMatrix 來自: 173.56.121.140 (02/20 14:54)
※ 編輯: BlackMatrix 來自: 173.56.121.140 (02/20 14:57)
→
02/20 16:24, , 1F
02/20 16:24, 1F
謝謝TonyQ和Qrtt1的提示
改變Part A: 把RandomInt == 1等於一個顏色利用陣列代替掉
Frame:
http://nopaste.csie.org/1fd94
※ 編輯: BlackMatrix 來自: 173.56.121.140 (02/20 17:28)
感謝TonyQ和Qrtt1教我怎麼使用陣列跟InstanceOf, 成功減少Code至少800-900行
改變Part B: 利用Instance Of減少反覆的Code
Frame:
http://nopaste.csie.org/59aae
※ 編輯: BlackMatrix 來自: 173.56.121.140 (02/20 17:36)
再次感謝TonyQ和Qrtt1教我的方法
改變Part C: 利用陣列和一些ActionPerformed的技巧, 我的Code從1100行到113行
Frame:
http://nopaste.csie.org/b01a2
※ 編輯: BlackMatrix 來自: 173.56.121.140 (02/20 17:50)
基本上都完成了
最後感謝TonyQ, Qrtt1, PsMonkey能夠專心把我寫得很爛的文章和程序看完
也謝謝你們能夠糾正我的錯誤
※ 編輯: BlackMatrix 來自: 173.56.121.140 (02/20 17:58)
※ 編輯: BlackMatrix 來自: 173.56.121.140 (02/20 17:59)
討論串 (同標題文章)