image_button[i].getGraphics().drawImage(bufferedimage, 0,0,252/level,405/level,(i%level)*(252/level), (i/level)*(405/level), (i%level+1)*(252/level), (i/level+1)*(405/level),null);
}
icon_button=new ImageIcon[level * level];
for (int i = 0; ilevel * level; i++) {
button[i] = new JButtonx();
icon_button[i]=new ImageIcon(image_button[i],i+"");
button[i].setIcon(icon_button[i]);
button[i].num=i;
button[i].addActionListener(this);
panel_right.add(button[i]);
}
button[level*level-1].setVisible(false);
panel.add(panel_right);
menuitem1_1.addActionListener(this);
menuitem1_2.addActionListener(this);
menuitem2_1.addActionListener(this);
menuitem2_2.addActionListener(this);
menuitem2_3.addActionListener(this);
menu1.add(menuitem1_1);
menu1.add(menuitem1_2);
menu2.add(menuitem2_1);
menu2.add(menuitem2_2);
menu2.add(menuitem2_3);
menubar.add(menu1,BorderLayout.WEST);
menubar.add(menu2,BorderLayout.EAST);
menubar.add(panel_menu);
panel_menu.add(label1_1);
panel_menu.add(label1_2);
panel_menu.add(label1_3);
panel_menu.add(label2_1);
panel_menu.add(label2_2);
panel_menu.add(label2_3);
frame.setJMenuBar(menubar);
frame.add(panel);
frame.setBounds(x, y, 508+4, 459+5);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setResizable(false);
frame.setVisible(true);
}
public void actionPerformed(ActionEvent e) {
if(e.getSource()==menuitem1_1)
{
for (int i = 0; ilevel*level; i++)
button[i].setVisible(true);
int a[]=new int [level*level];
int index=level*level;
for (int i = 0; ilevel*level; i++) {
a[i]=i;
}
for (int i = 0; ilevel*level; i++) {
int x=(int)(Math.random()*index);
int temp=a[x];
a[x]=a[index-1];
a[index-1]=temp;
button[i].setIcon(icon_button[a[index-1]]);
if(a[index-1]==level*level-1)button[i].setVisible(false);
index--;
}
win();
}
else if(e.getSource()==menuitem1_2){if(jfc.showOpenDialog(panel)==0)name=jfc.getSelectedFile().getAbsolutePath();frame.setVisible(false);x=frame.getX();y=frame.getY();reset();}
else if(e.getSource()==menuitem2_1){level=4;frame.setVisible(false);x=frame.getX();y=frame.getY();reset();}
else if(e.getSource()==menuitem2_2){level=5;frame.setVisible(false);x=frame.getX();y=frame.getY();reset();}
else if(e.getSource()==menuitem2_3)try {level=Integer.parseInt(JOptionPane.showInputDialog(frame,"请输入行数:"));frame.setVisible(false);x=frame.getX();y=frame.getY();reset();} catch (Exception e2) {}
else
{
JButtonx but=(JButtonx)e.getSource();
if(but.isVisible())
{
if(but.num-level=0)judgemengt(but.num,but.num-level);
if(but.num+level=level*level-1)judgemengt(but.num,but.num+level);
if(but.num%level-1=0)judgemengt(but.num,but.num-1);
if(but.num%level+1=level-1)judgemengt(but.num,but.num+1);
}
win();
}
}
public void judgemengt(int i,int j)
{
if(button[j].isVisible()==false)
{
Icon icontemp_button=button[j].getIcon();
button[j].setIcon(button[i].getIcon());
button[i].setIcon(icontemp_button);
button[j].setVisible(true);
button[i].setVisible(false);
}
}
public void win()
{
int i;
for (i = 0; ilevel*level-1; i++) {
if(button[i].num!=Integer.parseInt(button[i].getIcon().toString()))break;
}
if(i==level*level-1)
{
JOptionPane.showMessageDialog(frame,"YOU WIN");
}
}
public static void main(String[] args) {
Jigsaw a=new Jigsaw();
a.reset();
}
}
class JButtonx extends JButton
{
int num;
}
急求用JAVA编写的图形化界面拼图小游戏代码!个人见解用java拼图的代码,总体需要两个二维数组(一个存储正确图片排列 Array1 String[][]用java拼图的代码,一个随机生成图片排列Array2 String[][]),一个一维数组来存储图片用java拼图的代码的名称Array3 String[],。
- 如何使用cmd命令行提示符登录mysql服务器 cmd中登陆mysql
- mysql 65535 8192 限制 mysql限制资源使用
- Mysql使用索引查询 mysql使用round
- redis缓存 redis缓冲常用命令
- mongodb用来存储什么 mongodb适合存储对象吗
- 2021年高考最热作文 mysql创建实例用户
- 你为什么使用抖音 你为什么使用mysql
- redis通配符的使用
- 使用redis实现分布式锁及其优化 redis分布式性能
- redis不适用场景 redis处理场景识别
