图片分割
public Image[] splitImage(String file, int rows, int cols)
{
Image t = new ImageIcon(file).getImage();
int w = t.getWidth(this) / cols;
int h = t.getHeight(this) / rows;
return splitImage(t, rows, cols, w, h);
}
public Image[] splitImage(String file, int rows, int cols, int w, int h)
{
Image t = new ImageIcon(file).getImage();
return splitImage(t, rows, cols, w, h);
}
public Image[] splitImage(Image t, int rows, int cols, int w, int h)
{
Image[] result = new Image[rows * cols];
try
{
for (int i = 0; i < result.length; i++)
{
result[i] = createImage(w, h);
Graphics g = result[i].getGraphics();
g.translate((-i % cols) * w, (-i / cols) * h);
g.drawImage(t, 0, 0, w * cols, rows * h, 0, 0,
t.getWidth(this), t.getHeight(this), this);
}
} catch (Exception e)
{
}
return result;
}
}
图片移动
向上移动
if(x1>0&&btn[x1-1][y1].isVisible()&&btn[x1-1][y1].getIcon()==null)
{
btn[x1-1][y1].setIcon(btn[x1][y1].getIcon());//获取当前图标给上一个控件为图标
btn[x1][y1].setIcon(null);//当前图标设置为空
step++;
}
向下移动
if(x1<m&&btn[x1+1][y1].isVisible()&&btn[x1+1][y1].getIcon()==null)
{
btn[x1+1][y1].setIcon(btn[x1][y1].getIcon());//获取当前图标给下一个控件为图标
btn[x1][y1].setIcon(null);//当前图标设置为空
step++;
}
向左移动
if(y1>0&&btn[x1][y1-1].isVisible()&&btn[x1][y1-1].getIcon()==null)
{
btn[x1][y1-1].setIcon(btn[x1][y1].getIcon());//获取当前图标给左一个控件为图标
btn[x1][y1].setIcon(null);//当前图标设置为空
step++;
}
向右移动
if(y1<n-1&&btn[x1][y1+1].isVisible()&&btn[x1][y1+1].getIcon()==null)
{
btn[x1][y1+1].setIcon(btn[x1][y1].getIcon());//获取当前图标给右一个控件为图标
btn[x1][y1].setIcon(null);//当前图标设置为空
step++;
}
btn[x1][y1].setBackground(Color.white);