一个JAVA小问题

来源:互联网 发布:借守望先锋的同学知乎 编辑:程序博客网 时间:2024/05/17 04:18
我刚学JAVA,很喜欢JAVA里的可视化编程,感觉挺神奇的哈。
之前学了点C,作为入门语言吧。写出的程序运行起来就是个DOC黑框,
呵呵,挺不好看的。高级的C又不懂,现在学JAVA了,构造个GUI挺方便的,
很人性化哈。
所以我经常写写这样的程序,也阅读了别人的一些程序。
下面是我看别人的程序时遇到的小问题,还请高手指教哈。
for(int i=1; i <26; i++){
Button btn = new Button();
btn.setBackground(Color.BLACK);
panel.add(btn);                       //panel当然是面板 罗
btn.addActionListener(new MyActionListener());
}
用上面的一个循环就可以产生25个 Btuuon吗?
我想的是不是应该定个数组啊,为什么编译时不会报变量名重复的错啊
而且那样注册监听能够分得出是哪个Button产生的事件吗?
这是个游戏的代码,感觉这游戏就有问题,不知道怎么个玩法??呵呵;
完整代码如下:
 
import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Component;
import java.awt.Frame;
import java.awt.GridLayout;
import java.awt.Label;
import java.awt.Panel;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.Color;
public class Game extends Frame{
Game game = null;
String str = "25";
String str1 = "0";
int i = 25,j = 0;
TextField tf = null;
TextField tf1 = null;
Label lab2 = null;
Button btn1 = null;
public void GameTest(){
game= new Game();
game.setTitle("GAME");
game.setLayout(null);
game.setBounds(300, 200,300,260);
game.setVisible(true);
BorderLayout bl = new BorderLayout();
game.setLayout(bl);
Panel panel = new Panel();
game.add(panel, BorderLayout.NORTH);
Panel panel1 = new Panel();
game.add(panel1,BorderLayout.SOUTH);
GridLayout gl = new GridLayout(5,5);
panel.setLayout(gl);
GridLayout gl1 = new GridLayout(3,2);
panel1.setLayout(gl1);
for(int i=1; i <26; i++){
Button btn = new Button();
btn.setBackground(Color.BLACK);
panel.add(btn);
btn.addActionListener(new MyActionListener());
}
Label lab = new Label("黑色个数");
Label lab1 = new Label("黄色个数");

tf = new TextField(str,20);

tf1 = new TextField(str1,20);
btn1 = new Button("重玩");
btn1.addActionListener(new MyActionListener1());
lab2 = new Label("未胜利,请加油");
panel1.add(lab);
panel1.add(tf);
panel1.add(lab1);
panel1.add(tf1);
panel1.add(btn1);
panel1.add(lab2);
Panel panel3 = new Panel();
Label lab4 = new Label("游戏之王");
game.add(panel3, BorderLayout.CENTER);
panel3.add(lab4);
game.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e) {
Game game = (Game)e.getSource();
game.dispose();
System.exit(0);
}
});
}
class MyActionListener implements ActionListener{
public void actionPerformed(ActionEvent e) {
Button btn = (Button)e.getSource();
btn.setBackground(Color.BLUE);
i--;
j++;
tf.setText(i + "");
tf1.setText(j + "");
if(j==25){
lab2.setText("恭喜你,你胜利了");
}
}
}
class MyActionListener1 implements ActionListener{
public void actionPerformed(ActionEvent e) {
//Button btn = (Button)e.getSource();
GameTest();
}
}
public static void main(String[] args) {
Game game = new Game();
game.GameTest();
}
}
 
大家运行玩玩看吧,感觉就有问题。
多指教了。
原创粉丝点击