如何模拟特定JButton在JButton数组中的移动

用户

我正在尝试用Java做一些小游戏来完成一项作业。

我们需要在JFrame窗口中有一个可调整大小的Grid,其中包含nxn(n = 5或7等有意义的数字)字段(在这种情况下,每个字段都是一个按钮),在该字段上有以下规则:

中间按钮是“黑洞”,有2个玩家。每个玩家拥有N-1艘战舰,必须将其移入黑洞。达到此目标的第一个玩家获胜。两名玩家的飞船都朝向和远离中间(黑洞)倾斜排列。

诀窍是,当您告诉船舶向某个方向行驶时,它将一直沿该方向行驶,直到撞到墙壁或另一艘船为止。

这是游戏在安装时的外观以及随船移动的方式:

在此处输入图片说明

我的问题是,我已经成功地使所有飞船和黑洞位于正确的位置。它们都是按钮,都是可单击的,因此现在我如何实现以下目的:

在我用鼠标单击选择单个按钮之后,系统应在其上设置Focus(我通过ActionListener尝试了requestFocus(),但似乎没有执行任何操作)。

然后,在设置焦点之后,该按钮(已经具有ActionListener的按钮)将具有KeyListener,它等待箭头键输入。然后,在输入方向后,该按钮将移动其颜色-模拟运动-直到它撞到船只,墙壁或从地图清除后进入黑洞为止。

我的问题是,如何让Java知道特定按钮上的keyListener应该只在选择按钮后才收听箭头键

另一个是-如何实际模拟运动?

基本上,两个团队的太空飞船都是蓝色/红色。其余的块都是白色的,除了中间的黑洞是黑色的。

如何使选定的按钮获得移动命令后移动setBackGroundColoring,以便逐块移动直到撞到墙壁或另一艘船?我什至不知道从哪里开始,所以我想在这里寻求帮助。

Sokratees9

您还应该使用KeyAdapter作为参数将KeyListener添加到按钮,并且在事件触发时,您可以获取事件的键代码,并对照值进行检查:

KeyEvent.VK_UP
KeyEvent.VK_DOWN
KeyEvent.VK_LEFT
KeyEvent.VK_RIGHT

然后采取必要的措施。

关于模拟运动,您是否希望三角形简单地在按钮之间“跳跃”,或更流畅?

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何用Java中的现有JButton创建JButton数组?

来自分类Dev

如何用Java中的现有JButton创建JButton数组?

来自分类Dev

如何为JButton编写鼠标移动事件

来自分类Dev

移动 JButton 的更好方法

来自分类Dev

如何制作图像的Jbutton数组

来自分类Dev

如何将jbutton设置为数组

来自分类Dev

JButton数组ActionListener值

来自分类Dev

如何在JPanel,JFrame中移动JButton和JLabels位置

来自分类Dev

如何使JButton在Java中不可点击?

来自分类Dev

如何在 JButton 中设置文本颜色?

来自分类Dev

如何使用actionPerformed方法和jbutton将值添加到整数数组列表中?

来自分类Dev

如何设置某些特定JButton组件的尺寸(在本例中为btnPlus)?

来自分类Dev

用户按下JButton时,如何“转到” JTable中的特定行?

来自分类Dev

JButton:模拟JButton按下而不触发动作

来自分类Dev

如何创建JButton?

来自分类Dev

如何设置JButton的大小?

来自分类Dev

如何设置JButton的大小?

来自分类Dev

如何修复JButton位置

来自分类Dev

JButton中的合成与继承

来自分类Dev

GUI中的JButton

来自分类Dev

JPanel中的JButton方向

来自分类Dev

在BoxLayout中对齐JButton

来自分类Dev

JPanel中的JButton方向

来自分类Dev

JPanel中的JButton

来自分类Dev

在JFrame中复制JButton

来自分类Dev

NullPointerException通过访问JButton数组中的对象

来自分类Dev

数组列表中的Java jbutton,我怎么知道单击了哪个

来自分类Dev

NullPointerException通过访问JButton数组中的对象

来自分类Dev

JButton settext的特定位置