Re: [問題] 關於Windowing
※ 引述《BlackMatrix (BlackMatrix)》之銘言:
: 最近教授有教怎麼做出簡單&上面有按鈕的程序
: 那...教授叫我們做出一個程序
: 有八個按鈕, 然後一開始程序就會設定每種按鈕的顏色, 然後點擊按鈕的時候會變換
: 那個被點擊的按鈕的框框會自動改變隨機的顏色.
: /////////想像//////// 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
問題一 , 怎麼讓x=1 是一個JButton.
用陣列 , 寫個sample給你 , 剩下的問題點你自己再慢慢深入去摸,
陣列操作上有一些難懂的地方,慢慢做下去你也會碰到.
(比方說常常有人會只宣告陣列長度 , 沒有對內容做實體化就拿來操作之類的.)
===========你的原code============
oneOneButton = new JButton ("First Panel: Press me ONE");
oneOneButton.addActionListener(new PressListener());
oneTwoButton = new JButton ("First Panel: Press me TWO");
oneTwoButton.addActionListener(new PressListener());
oneThreeButton = new JButton ("First Panel: Press me THREE");
oneThreeButton.addActionListener(new PressListener());
oneFourButton = new JButton ("First Panel: Press me FOUR");
oneFourButton.addActionListener(new PressListener());
================================
改陣列的code
String[] buttonName={"ONE","TWO","THREE","FOUR"};
JButton[] oneButton=new JButton[4];
for(int i=0;i<oneButton.length;++i){
oneButton[i]=new JButton("First Panel: Press me "+buttonName[i]);
oneButton[i].addActionListener(new PressListener());
//話說回來,如果你Listener都只是做一樣的事情 ,
//沒啥特別的處理, 其實或許只要產生一個,
// 所有人都add同一個就OK了...
}
你也可以在事件發生的地方這樣判斷
Object obj=e.getSource();
for(int i=0;i<oneButton.length;++i){
if(obj==oneButton[i]){ //被選定的是按鈕i
//對oneButton[i]改顏色等~
}
}
如果你只有JButton會發生事件 , 你更可以用
JButton clickedButton=(JButton) e.getSource();
針對被點擊的 clickedButton 做操作...
--
加油囉
--
What do you want to have ? / What do you have?
從書本中,你可以發現我的各種興趣。
從CD中,你可以瞭解我所喜歡的偶像明星。
或許從文字你很難以瞭解一個人,但從物品可以。
My PPolis , My past. http://ppolis.tw/user/Tony
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.25.93.82
→
02/20 16:35, , 1F
02/20 16:35, 1F
推
02/20 17:23, , 2F
02/20 17:23, 2F
→
02/20 17:54, , 3F
02/20 17:54, 3F
討論串 (同標題文章)