java - 用 Java 连接 4 GUI (JApplet)

标签 java swing applet

我目前正在编写 Connect 4 Applet 游戏,并且我已经实现了所有 AI 逻辑。现在我需要设计一个简单的 GUI,这样我就可以玩了。
我有一个我想要使用的棋盘图像(透明的 png),并且我希望能够通过单击该图像来执行移动(例如,在我想要玩的特定列上)。

执行此操作的最佳方法是什么?我想使用一个扩展 JPanel 的类,我在其中放置所有按钮和东西......包括绘制板图像。但是我可以在图像上放置鼠标监听器吗?

最佳答案

"But can i put a mouse listener on an Image??"

不,或者至少,不在您所想的环境中。

根据您想要实现的目标,您有多种选择。

基本要求是您需要确切地知道每个点击点在图像上的位置。最好通过使用图像编辑程序来绘制“热点”,然后将它们编码到您的程序中来实现这一点

你可以...

使用 JLabel渲染板图像并附加 MouseListener到它。

我遇到的问题是试图找出如何使用玩家标记更新图像。

你可以...

使用 JPanel并覆盖它的 paintComponent渲染图像和玩家移动/标记。

然后您将添加 MouseListener到它并从那里监视鼠标点击。

无论您使用哪种方法,我都可能会创建一个 ListRectangle s 代表用户可以点击的热点。每次mousePressed被称为,我会遍历这个列表并使用 Rectangle#contains(Point) ,通过鼠标点击点,判断点击的是哪个热点。

然后,您可以将其与游戏模型进行比较,以确定其是否有效,并根据需要采取适当的操作。

看看How to write a Mouse ListenerPerforming custom painting了解更多详情

关于java - 用 Java 连接 4 GUI (JApplet),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17915229/

相关文章:

java - 与 Redis 数据库共享 Spring Session

java - 从 Java Applet 访问文件

java - 使用 Swing Timer 延迟任务

java - 从 Javascript 调用的 Applet 方法

java - 从 javascript 调用 JApplet 函数不是函数

java - ESQL 中的动态 JSON 键/值对生成

java - Hibernate 检查集合中所有元素是否相等

java - 为什么发出终端操作后 Java close() 不流式传输?

java - 在 JTable 中切换按钮的颜色

java - JButton 背景图像