(1)如何实现图片移动
使用带图片的按钮(button =new button(getImage(Array[2][4]))),然后通过单击事件来更改按钮的图片来源 。把被点击的按钮的图片路径更新到空白按钮,并且把被点击的按钮图片更新的成空白 。其实就是变换两个的二维数组成员的值 。更新Array2中的值,然后重绘按钮
如 Array[2][3]=“3.image”
Array[2][4]=“”
图片3.image右移
Array[2][3]=“”
Array[2][4]=“3.image”
(2)如何判断被单击的网格与空白的网格是否相邻
后台使用一个二维数组Array2来做映射 。通过二维数组的下标来判断,如Array[2][3]可以知道Array[2][4]是它右边的那个 。
(3)如何实现图片的随机摆放
比如有9个图片 , 用java拼图的代码你可以命名1-9,然后初始化一个长度为9的一维String 数组Array3来存储图片的名称,
使用随机函数给二维数组Array2赋值,如Array2[2][3]=Array3[random()],这里要判断这个图片是否已被使用过,可以通过遍历Array2来确定当前Array3这个值是否已经在Array2中用java拼图的代码了
最后通过Array1 和Array2来比较,用户的拼图是否正确 。
语言组织能力有限 。讲不太清楚 。
找高手帮我翻译这个JAVA拼图游戏代码(希望能帮我解析每句中用到的JAVA技术)import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Choice;
import java.awt.Color;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
//以上均引用不同的package内的类
public class MyMainFrame extends JFrame implements ActionListener {//MyMainFrame类extends “JFrame”类实现 ActionListener的方法
MyCanvas myCanvas; //初始化对象MyCanvas类
JPanel panelNorth,panelPreview;//定义上方的面板,及预览所需的面板
Button start,preview,set;//定义开始 , 预览,设定按钮
Container container;//容器,得到内容面板
public MyMainFrame() {//初使化
container=this.getContentPane(); //得到当前对象的ContentPane,并且把它赋给container
start=new Button("开始");//创建并初始新的Button(按钮)对象,赋给start
start.addActionListener(this); //在这个按钮对象中添加监听器,范围是当前对象
preview=new Button("预览");//同上,创建新的Button对象 。。。。。
preview.addActionListener(this);//同上 。。。。。
set = new Button("设置"); //同上 。。。。。(感觉代码都差不多吧?呵呵)
set.addActionListener(this);//同上
panelPreview=new JPanel(); 创建新的JPanel(面板)对象
panelPreview.setLayout(null); //设置面板对象的布局为空
Icon icon=new ImageIcon("pic/pic_"+MyCanvas.pictureID+".jpg"); //创建并初始新的图标对象 。图标的图片路径是pic目录下的pic与通过MyCanvas.pictureId取得字符串再与.jpg合并后的名称 。例如(pic/pic_1234.jsp)
JLabel label=new JLabel(icon); //定义新的JLable(java标签),并初始
label.setBounds(0,0,300,300); //设置标签的范围(长x轴,宽y轴,长多,宽多少)
panelPreview.add(label); //面板对象中添加label这个对象
panelNorth=new JPanel(); //定义新的JPanel
panelNorth.setBackground(Color.red); //设置JPanel的背景色
panelNorth.add(start); //Jpanel加入按钮
panelNorth.add(preview); //同上
panelNorth.add(set); //同上
myCanvas=new MyCanvas(); //实例化MyCanvas
container.add(myCanvas,BorderLayout.CENTER);//在容器(前边定义好了这个对象)中添加myCanvas,设置它的布局为居中
- 如何使用cmd命令行提示符登录mysql服务器 cmd中登陆mysql
- mysql 65535 8192 限制 mysql限制资源使用
- Mysql使用索引查询 mysql使用round
- redis缓存 redis缓冲常用命令
- mongodb用来存储什么 mongodb适合存储对象吗
- 2021年高考最热作文 mysql创建实例用户
- 你为什么使用抖音 你为什么使用mysql
- redis通配符的使用
- 使用redis实现分布式锁及其优化 redis分布式性能
- redis不适用场景 redis处理场景识别
