作为对象/类的 Java 图形

标签 java image swing

很抱歉,这可能太基础了,不能在这里讨论,但这是一个我已经苦苦挣扎了大约一个月的主题,我不知道还能去哪里(据我所知)不是“菜鸟溢出”,哈哈)。

我正在尝试创建一个类:

1.  put an image on a window (a JFrame, JPanel or other container)
2.  be able to support keyboard and mouse listeners
3.  could have multiple instances in the same container

所以无论如何,我已经尝试了所有常用的地方——谷歌、YouTube、官方 Java 站点(抱歉忘记了 URL),当然还有 Stack Overflow 上的这里——但没能找到任何类似的东西我正在尝试做。

当然,我也考虑过可能根本做不到的可能。似乎没有任何一种标准的“JImage”或“JGraphic”可以像 JButton 或 JLabel 一样工作,并且无论出于何种原因,图形都需要一个完全不同的(非常复杂的)过程和过程列表。例如,在这篇文章中:How to "really" draw images in a Java app - 我花了 60 多行代码和 2 个类才接近。该项目最终没有成功,因为出于某种原因它只会让我创建一个实例(即使您在 main 方法中创建了 2-4 个实例,它也只会显示您告诉它添加的最后一个实例)。

但是无论如何,假设我不是要在这里“重新发明轮子”,而且这实际上是可能的(在 Java 中),有没有人知道如何(或者至少知道一个更好的网站)研究它)?不幸的是,我访问过的大多数网站都倾向于假设您了解图像的所有内部工作原理(我知道像素是什么,但仅此而已——缓冲区、Rastars 等仍然超出我的理解范围)。如果有一个网站可以通俗易懂地解释它,那将是绝对出色的,如果存在这样的网站的话。提前致谢。

最佳答案

只需使用普通的旧 JLabel。

关于您的要求:

put an image on a window (a JFrame, JPanel or other container).

您可以为 JLabel 提供感兴趣图像的 ImageIcon,它会显示该图像。然后可以轻松地将其放置在任何其他容器中,例如 JPanel 或 JFrame。

be able to support keyboard and mouse listeners

任何扩展 JComponent 的组件(例如 JLabel)都允许使用 MouseListener、MouseMotionListener 并且可以通过键绑定(bind)监听键盘输入。

could have multiple instances in the same container

您可以向任何容器添加任意数量的内容。只需了解并尊重正在使用的布局管理器即可。

关于作为对象/类的 Java 图形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17636127/

相关文章:

java - 使用frame.add() 时出现错误,不知道为什么

java - Eclipse 在多个项目上运行不同的 Maven 目标

java - 创建泛型类类型的数组

PHP cURL 同时保存图像并获取 header 响应

c# - 如何以最有效的方式将图像转换为字符串?

javascript - 使用javascript加载多个图像

java - 如何通过java代码确定系统上安装的java版本?

java - 为了绘制轻量级组件,需要递归更新或绘制什么?

java - 如何限制 jFormattedTextField

Java 鼠标监听器 - 比较两个移动。