作者TonyQ (^^)
看板java
标题Re: [问题] 关於Windowing
时间Sat Feb 20 16:33:27 2010
※ 引述《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
1F:→ TonyQ:判断instanceof也可, 纯粹是懒得解释instance才没说XD 02/20 16:35
2F:推 BlackMatrix:谢谢TonyQ的提示, 我正在改进我的Code 02/20 17:23
3F:→ BlackMatrix:谢谢TonyQ的提示, 我已经把我的Code顺利做完了,谢谢 02/20 17:54