📄 ball.java
字号:
import java.awt.*;
import java.awt.event.*;
class Ball extends Canvas implements FocusListener,MouseListener
{
boolean flag;//表示此点是否走过
int
startx=0,//此点x轴的位置
starty=0;//此点y轴的位置
Colorlinez linez;
static Ball downBall=new Ball(Color.white,0,0);//记录下点击球
Color color,//球的颜色
bg=Color.black;//边框颜色
Ball(Color color,int startx,int starty)
{
this.color=color;
this.startx=startx;
this.starty=starty;
this.flag=false;
addMouseListener(this);
addFocusListener(this);
}
public void update(Graphics g) //更新:设边框颜色,圆色并画圆
{
g.setColor(bg);
g.drawRect(0,0,22,22);
g.setColor(color);
g.fillOval(1,1,21,21);
}
public void paint(Graphics g) //开始画
{
update(g);
}
public void focusGained(FocusEvent e)
{
}
public void focusLost(FocusEvent e)
{
bg=Color.black;
repaint();
}
public void mouseEntered(MouseEvent e)
{
}
public void mouseExited(MouseEvent e)
{
}
public void mousePressed(MouseEvent e)
{
}
public void mouseReleased(MouseEvent e)
{
}
public void mouseClicked(MouseEvent e)
{
if (color!=Color.white) //如果球的颜色不是白色
{
bg=Color.red;
downBall=this;
repaint();
}
else
{
for(int i=0;i<9;i++)//清空走过标记
for(int j=0;j<9;j++)
linez.b[i][j].flag=false;
if (linez.moveBall(downBall.startx,downBall.starty-1,this.startx,this.starty)
||linez.moveBall(downBall.startx+1,downBall.starty,this.startx,this.starty)
||linez.moveBall(downBall.startx,downBall.starty+1,this.startx,this.starty)
||linez.moveBall(downBall.startx-1,downBall.starty,this.startx,this.starty))//如果把球移到相邻的位置
{
this.color=downBall.color;
downBall.color=Color.white;
if(!linez.erase(this.startx,this.starty))//如果没有小球消去
linez.new3ball(); //生成三个小球
else
{
linez.lblPoint.setText(""+linez.point);
}
repaint();
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -