我刚学java语言,在学习java简单的拼图游戏时发现网上有些居然要导入调试,而且网上有些说的调试方法不明不白,所以我就分享了我的可直接复制在新项目中的源码,如果要直接要搞好的话就可以用结尾的分享提取链接进行百度网盘获取(该项目的下一张的那个图片没有,可自己学着下面做)。新建项目后步骤如图
源码:
package com.company;import javax.swing.*;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;class Main extends JFrame { private JLabel 显示图像标签; private JButton 空白图片按钮; private JPanel 运行面板; int num = 0; public static void main(String[] args) { // write your code here try { Main frame = new Main(); frame.setVisible(true); } catch (Exception e) { } } public Main() { super(); setResizable(false); setTitle("作业"); setSize(320, 435); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setLayout(null); 显示图像标签 = new JLabel(); 显示图像标签.setIcon(new ImageIcon("image/"+ num+ ".gif")); 显示图像标签.setBounds(0,0,80,80); add(显示图像标签); JLabel 标记图像标签= new JLabel(); 标记图像标签.setIcon(new ImageIcon("image/"+"hmq.jpg")); 标记图像标签.setBounds(80,0,160,80); add(标记图像标签); JButton 下一张按钮 = new JButton(); 下一张按钮.setText("下一张"); 下一张按钮.setBounds(240,0,80,40); 下一张按钮.addActionListener((ActionListener) new NextButtonAction()); add(下一张按钮); JButton 开局按钮 = new JButton(); 开局按钮 .setText("开局"); 开局按钮 .setBounds(240,40,80,40); 开局按钮 .addActionListener((StartButtonAction) new StartButtonAction()); add(开局按钮); 运行面板=new JPanel(); 运行面板.setBounds(0,80,320,320); add(运行面板); 运行面板.setLayout(new GridLayout(4, 4)); String[][] 初始排列 = 初始排列法(); for (int row=0; row<4; row++) { for (int col=0; col<4; col++) { JButton 每个的按钮 = new JButton(); 每个的按钮.setName(row+""+col); 每个的按钮.setIcon(new ImageIcon(初始排列[row][col])); if (初始排列[row][col].equals("image/"+ num+"00.gif")) 空白图片按钮 = 每个的按钮; 每个的按钮.addActionListener(new ImgButtonAction()); 运行面板.add(每个的按钮); } } } private String[][] 初始排列法() { String[][] 初始排列 = new String[4][4]; for (int row=0; row<4; row++) { for (int col=0; col<4; col++) { 初始排列[row][col] = "image/"+ num+ row+ col+ ".gif"; } } return 初始排列; } //随机排列图片 private String[][] 随机排列法() { String[][] 初始排列 = new String[4][4]; for (int row=0; row<4; row++) { for (int col=0; col<4; col++) { 初始排列[row][col] = "image/"+ num+ row+ col+ ".gif"; } } String[][] 随机排列 = new String[4][4]; for (int row=0; row<4; row++) { for (int col=0; col<4; col++) { while (随机排列[row][col]==null) { int r = (int) (Math.random()*4); int c = (int) (Math.random()*4); if (初始排列[r][c] != null) { 随机排列[row][col] = 初始排列[r][c]; 初始排列[r][c] = null; } } } } return 随机排列; } //游戏时排列图片 class ImgButtonAction implements ActionListener { public void actionPerformed(ActionEvent e) { String 空白图片按钮名称=空白图片按钮.getName(); char 空白图片按钮行名称 = 空白图片按钮名称.charAt(0); char 空白图片按钮列名称 = 空白图片按钮名称.charAt(1); JButton 点击按钮 = (JButton) e.getSource(); String 点击按钮名 = 点击按钮.getName(); char 点击按钮行名 = 点击按钮名.charAt(0); char 点击按钮列名= 点击按钮名.charAt(1); if (Math.abs(点击按钮行名 - 空白图片按钮行名称) + Math.abs(点击按钮列名 - 空白图片按钮列名称) == 1) { 空白图片按钮.setIcon(点击按钮.getIcon()); 点击按钮.setIcon(new ImageIcon("image/"+ num+ "00.gif")); 空白图片按钮 = 点击按钮; } } } //换下一张图片 class NextButtonAction implements ActionListener { private ActionEvent e; public void actionPerformed(ActionEvent e) { if (num==1) { num=0; } else { ++num; } 显示图像标签.setIcon(new ImageIcon("image/"+num+".gif")); String[][] 始排列 = 初始排列法(); int i= 0; for (int row=0; row<4; row++) { for (int col=0; col<4; col++) { JButton 点按钮1 = (JButton) 运行面板.getComponent(i++); 点按钮1.setIcon(new ImageIcon(始排列[row][col])); if(始排列[row][col].equals("image/"+ num+ "00.gif")) 空白图片按钮=点按钮1; } } } } //开局排列图片 class StartButtonAction implements ActionListener { public void actionPerformed(ActionEvent e) { String[][] 随排列 = 随机排列法(); int i= 0; for (int row=0; row<4; row++) { for (int col=0; col<4; col++) { JButton 点按钮2 = (JButton) 运行面板.getComponent(i++); 点按钮2.setIcon(new ImageIcon(随排列[row][col])); if(随排列[row][col].equals("image/"+ num+ "00.gif")) 空白图片按钮=点按钮2; } } } }}
链接:https://pan.baidu.com/s/1ixtL2ookKudJUar7rz52-w
提取码:z7az
复制这段内容后打开百度网盘手机App,操作更方便哦