这是我改的代码,还请教哪位朋友帮我改一下,谢谢啦!
import java.awt.*;
import java.awt.event.*;
import java.util.*;
class taoqidebutton extends Frame {
public taoqidebutton() {
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
dispose();
System.exit(0);
}
});
}
public static void main(String args[]) {
int a,b;
Random rnd = new Random();
taoqidebutton mainFrame = new taoqidebutton();
Panel pnl=new Panel(new GridLayout(5,5));
Label lab=new Label("试试看,你永远也不会点到这个淘气的按钮!",Label.CENTER);
mainFrame.setLayout(null);
lab.setBounds(0,40,480,20);
lab.setFont(new Font("Serief",Font.ITALIC+Font.BOLD,18));
lab.setForeground(Color.yellow);
pnl.setBounds(40,80,400,400);
MyButton btn[];
btn=new MyButton[25];
for(int i=0;i<btn.length;i++){
btn[i]=new MyButton("你点不到我!");
}
/*下面的for循环是有问题的代码,肯定不对!
怎么就在几个按钮里转悠?哪位朋友再帮我改一改
这个地方怎样随机显示一个按钮点
完后随机显示的另一个按钮? */
for(int i=0;i<btn.length;i++){
a=rnd.nextInt(25);
btn[i].setAnother(btn[a]);
}
for(int i=0;i<btn.length;i++)
pnl.add(btn[i]);
mainFrame.setLocation(300,150);
mainFrame.setSize(480, 500);
mainFrame.setBackground(Color.red);
for(int i=0;i<btn.length;i++)
btn[i].setBackground(Color.yellow);
mainFrame.setTitle("淘气的按钮!");
mainFrame.add(lab);
mainFrame.add(pnl);
mainFrame.setVisible(true);
for(int i=0;i<btn.length;i++)
btn[i].setVisible(false);
a=rnd.nextInt(25);
btn[a].setVisible(true);
}
}
class MyButton extends Button
{
private MyButton another=null; //这个地方加null是什么意思?
public MyButton(String title)
{
super(title);
enableEvents(AWTEvent.MOUSE_MOTION_EVENT_MASK);
}
public void setAnother(MyButton another){
this.another=another;
}
protected void processMouseMotionEvent(MouseEvent e){
setVisible(false);
another.setVisible(true);
}
}
----------------解决方案--------------------------------------------------------
另外为什么启动的一瞬间所有的按钮都显示啊?怎么消除这种情况啊?
还有怎么样让界面和按钮更漂亮一点?谢谢大家!
----------------解决方案--------------------------------------------------------