Java项目——单机五子棋(无人机)

原博客:https://blog.csdn.net/cnlht/article/details/8176130

实践目标:

   1.掌握JavaGUI界面设计

   2.掌握鼠标事件的监听(MouseListener,MouseMotionListener)

问题:

一、找不到合适的棋盘图,改为14*14
二、获取图片:Toolkit.getDefaultToolkit().getImage(“XXX”)

img=Toolkit.getDefaultToolkit().getImage(“board1.jpg”);

三、addMouseListener();当按下、释放或单击(按下并释放)鼠标时会生成鼠标事件。鼠标光标进入或离开组件时也会生成鼠标事件。发生鼠标事件时,将调用该侦听器对象中的相应方法,并将MouseEvent 传递给该方法。
其包含五个方法:

1.public void mouseClicked(MouseEvent e) 鼠标按键在组件上单击(按下并释放)时调用。
2.public void mouseEntered(MouseEvent e) 鼠标进入到组件上时调用。
3.public void mouseExited(MouseEvent e) 鼠标离开组件时调用。
4.public void mousePressed(MouseEvent e) 鼠标按键在组件上按下时调用。
5.public void mouseReleased(MouseEvent e) 鼠标按钮在组件上释放时调用。
6.e.get(x) / e.get(y) 获取鼠标在页面的横坐标、纵坐标

addMouseListener(this);
int x1=(e.getX()-MARGIN+GRID_SPAN/2)/GRID_SPAN;

四、改变光标形状setCursor(new Cursor(Cursor.XXX));

setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
setCursor(new Cursor(Cursor.HAND_CURSOR));

五、Graphics类提供基本绘图方法,主要有:画线段、画矩形、画圆、画带颜色的图形、画椭圆、画圆弧、画多边形等。
https://www.cnblogs.com/donghb/p/7637990.html

  • 不知道PaintComponent(Graphic g)具体什么用,但是注释掉后会出现两个重叠网格,无法悔棋,重新开始后上一盘不会清零

Graphics g
super.paintComponent(g);
//
g.drawImage(img, x, y, null);
//
g.drawLine(MARGIN, MARGIN+iGRID_SPAN, MARGIN+COLSGRID_SPAN, MARGIN+i*GRID_SPAN);

六、比Graphic更加具立体感Graphics2D

反思

基本上第一次读略长的代码,一开始没找到主干,应该从实现逻辑开始读,再看GUI及其美化
可以添加更多功能:如,棋盘大小选择
Syntax error on token “;”, , expected //将此代码行放在方法体中
用到了匿名内部类:不用给内部类命名 此题中的匿名内部类 还不用调用对象

for(元素类型t 元素变量x : 遍历对象obj){
引用了x的java语句;
}

//遍历chessList
for(Point c:chessList){
			   if(c!=null&&c.getX()==x&&c.getY()==y)
				   return true;
		   }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值