求一个java拼图源程序
导入Java . awt . *;
导入Java . awt . event . action event;
导入Java . awt . event . action listener;
导入Java . util . random;
导入javax . swing . *;
公共类Games扩展JFrame实现ActionListener {
私有JButton按钮[][];//存储一个键数组。
私人集装箱集装箱;//一个容器
专用网格布局布局;//布局模式是GridLayout。
private int count = 0,is[]= new int[8];// count用于统计按键移动的次数,is[]存储随机生成的1到8的数字数组。
公共游戏(){
超级(“拼图”);//设置标题
layout = new GridLayout(3,3);// 3行3列
container = getContentPane();//容器的布局极其重要,否则会产生空引用异常。
container.setLayout(布局);//将此布局应用于容器。
buttons = new JButton[3][3];//为键数组分配存储空间
int locate1,locate2// locate1用于指示当前生成的元素;locate2用于指示locate1之前的元素。
for(locate 1 = 0;locate 1 & lt;8;Locate1++) {//这个方法的作用是生成从1到8的8个数,随机赋给数组,也就是乱序。
int g = new Random()。nextInt(8)+1;//随机生成一个空白键,也就是不显示的那个。
is[locate 1]= g;
for(locate 2 = locate 1-1;0 & lt= locate2位置2 - ) {
if(is[locate 1]= = is[locate 2])
打破;
}
如果(locate2!= -1)
locate 1-;
}
int temp = 0;
int r = new Random()。nextInt(3);//随机生成一个0到3的数字,代表空白键的行数。
int l = new Random()。nextInt(3);//随机生成一个0到3的数字,代表空白键的列。
for(int I = 0;我& lt3;i++) {
for(int j = 0;j & lt3;j++) {
if(r = = I & amp;& ampL == j) {//空白键设置为9,不显示。
buttons[I][j]= new JButton(" 9 ");
container . add(buttons[I][j]);
按钮[i][j]。set visible(false);
}否则{
buttons[I][j]= new JButton("+is[temp++]);//使用数组array的值作为显示的八个键的名称。
container . add(buttons[I][j]);
}
按钮[i][j]。addActionListener(this);//注册监听事件
}
}
setSize(300,300);//设置显示容器区域大小
set visible(true);
}
public void action performed(action event){//事件处理,因为计算量小,这里把所有键都分开分析。
JButton b =(JButton)event . getsource();
if (b == buttons[0][0]) {
if (buttons[0][1]。getText()。equals(" 9 "){
按钮[0][1]。setText("+buttons[0][0]。getText());
按钮[0][1]。set visible(true);
按钮[0][0]。setText(" 9 ");
按钮[0][0]。set visible(false);
count++;
} else if (buttons[1][0]。getText()。equals(" 9 "){
按钮[1][0]。setText("+buttons[0][0]。getText());
按钮[1][0]。set visible(true);
按钮[0][0]。setText(" 9 ");
按钮[0][0]。set visible(false);
count++;
}
}
else if(b = = buttons[0][1]){
如果(按钮[0][0]。getText()。equals(" 9 "){
按钮[0][0]。setText("+buttons[0][1]。getText());
按钮[0][0]。set visible(true);
按钮[0][1]。setText(" 9 ");
按钮[0][1]。set visible(false);
count++;
} else if (buttons[0][2]。getText()。equals(" 9 "){
按钮[0][2]。setText("+buttons[0][1]。getText());
按钮[0][2]。set visible(true);
按钮[0][1]。setText(" 9 ");
按钮[0][1]。set visible(false);
count++;
} else if(buttons[1][1]。getText()。equals(" 9 "){
按钮[1][1]。setText("+buttons[0][1]。getText());
按钮[1][1]。set visible(true);
按钮[0][1]。setText(" 9 ");
按钮[0][1]。set visible(false);
count++;
}
} else if (b == buttons[0][2]) {
if (buttons[0][1]。getText()。equals(" 9 "){
按钮[0][1]。setText("+buttons[0][2]。getText());
按钮[0][1]。set visible(true);
按钮[0][2]。setText(" 9 ");
按钮[0][2]。set visible(false);
count++;
} else if (buttons[1][2]。getText()。equals(" 9 "){
按钮[1][2]。setText("+buttons[0][2]。getText());
按钮[1][2]。set visible(true);
按钮[0][2]。setText(" 9 ");
按钮[0][2]。set visible(false);
count++;
}
} else if(b = = buttons[1][0]){
如果(按钮[0][0]。getText()。equals(" 9 "){
按钮[0][0]。setText("+buttons[1][0]。getText());
按钮[0][0]。set visible(true);
按钮[1][0]。setText(" 9 ");
按钮[1][0]。set visible(false);
count++;
} else if(buttons[1][1]。getText()。equals(" 9 "){
按钮[1][1]。setText("+buttons[1][0]。getText());
按钮[1][1]。set visible(true);
按钮[1][0]。setText(" 9 ");
按钮[1][0]。set visible(false);
count++;
} else if (buttons[2][0]。getText()。equals(" 9 "){
按钮[2][0]。setText("+buttons[1][0]。getText());
按钮[2][0]。set visible(true);
按钮[1][0]。setText(" 9 ");
按钮[1][0]。set visible(false);
count++;
}
} else if(b = = buttons[1][1]){
if (buttons[0][1]。getText()。equals(" 9 "){
按钮[0][1]。setText("+buttons[1][1]。getText());
按钮[0][1]。set visible(true);
按钮[1][1]。setText(" 9 ");
按钮[1][1]。set visible(false);
count++;
} else if (buttons[1][0]。getText()。equals(" 9 "){
按钮[1][0]。setText("+buttons[1][1]。getText());
按钮[1][0]。set visible(true);
按钮[1][1]。setText(" 9 ");
按钮[1][1]。set visible(false);
count++;
} else if (buttons[1][2]。getText()。equals(" 9 "){
按钮[1][2]。setText("+buttons[1][1]。getText());
按钮[1][2]。set visible(true);
按钮[1][1]。setText(" 9 ");
按钮[1][1]。set visible(false);
count++;
} else if (buttons[2][1]。getText()。equals(" 9 "){
按钮[2][1]。setText("+buttons[1][1]。getText());
按钮[2][1]。set visible(true);
按钮[1][1]。setText(" 9 ");
按钮[1][1]。set visible(false);
count++;
}
} else if(b = = buttons[1][2]){
如果(按钮[0][2]。getText()。equals(" 9 "){
按钮[0][2]。setText("+buttons[1][2]。getText());
按钮[0][2]。set visible(true);
按钮[1][2]。setText(" 9 ");
按钮[1][2]。set visible(false);
count++;
} else if(按钮[2][2]。getText()。equals(" 9 "){
按钮[2][2]。setText("+buttons[1][2]。getText());
按钮[2][2]。set visible(true);
按钮[1][2]。setText(" 9 ");
按钮[1][2]。set visible(false);
count++;
} else if(buttons[1][1]。getText()。equals(" 9 "){
按钮[1][1]。setText("+buttons[1][2]。getText());
按钮[1][1]。set visible(true);
按钮[1][2]。setText(" 9 ");
按钮[1][2]。set visible(false);
count++;
}
} else if (b == buttons[2][0]) {
如果(按钮[1][0]。getText()。equals(" 9 "){
按钮[1][0]。setText("+buttons[2][0]。getText());
按钮[1][0]。set visible(true);
按钮[2][0]。setText(" 9 ");
按钮[2][0]。set visible(false);
count++;
} else if (buttons[2][1]。getText()。equals(" 9 "){
按钮[2][1]。setText("+buttons[2][0]。getText());
按钮[2][1]。set visible(true);
按钮[2][0]。setText(" 9 ");
按钮[2][0]。set visible(false);
count++;
}
}
else if(b = = buttons[2][1]){
如果(按钮[2][0]。getText()。equals(" 9 "){
按钮[2][0]。setText("+buttons[2][1]。getText());
按钮[2][0]。set visible(true);
按钮[2][1]。setText(" 9 ");
按钮[2][1]。set visible(false);
count++;
} else if(按钮[2][2]。getText()。equals(" 9 "){
按钮[2][2]。setText("+buttons[2][1]。getText());
按钮[2][2]。set visible(true);
按钮[2][1]。setText(" 9 ");
按钮[2][1]。set visible(false);
count++;
} else if(buttons[1][1]。getText()。equals(" 9 "){
按钮[1][1]。setText("+buttons[2][1]。getText());
按钮[1][1]。set visible(true);
按钮[2][1]。setText(" 9 ");
按钮[2][1]。set visible(false);
count++;
}
} else if (b == buttons[2][2]) {
如果(按钮[2][1]。getText()。equals(" 9 "){
按钮[2][1]。setText("+buttons[2][2]。getText());
按钮[2][1]。set visible(true);
按钮[2][2]。setText(" 9 ");
按钮[2][2]。set visible(false);
count++;
} else if (buttons[1][2]。getText()。equals(" 9 "){
按钮[1][2]。setText("+buttons[2][2]。getText());
按钮[1][2]。set visible(true);
按钮[2][2]。setText(" 9 ");
按钮[2][2]。set visible(false);
count++;
}
}
如果(按钮[0] [0]。gettext()。equals(" 1 ")//如果已经排列了1到8,则执行该语句。
& amp& amp按钮[0][1]。getText()。等于(" 2 ")
& amp& amp按钮[0][2]。getText()。等于(" 3 ")
& amp& amp按钮[1][0]。getText()。等于(" 4 ")
& amp& amp按钮[1][1]。getText()。等于(" 5 ")
& amp& amp按钮[1][2]。getText()。等于(" 6 ")
& amp& amp按钮[2][0]。getText()。等于(" 7 ")
& amp& amp按钮[2][1]。getText()。等于(" 8 "){
Joption窗格。显示消息对话框(空,“花了你* * *”+count+“步完成游戏!”);//弹出对话框,显示* * *移动步数。
system . exit(0);//退出程序
}
}
公共静态void main(String[] args) {
Games game =新游戏();
game . setdefaultcloseoperation(JFrame。EXIT _ ON _ CLOSE);
}
}