求一个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);

}

}