对不起,这可能太基础了,但这是一个我已经苦苦挣扎了大约一个月的主题,我不知道还能去哪里(据我所知)不是“noob溢出”,哈哈)。
我正在尝试创建一个类:
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网站(抱歉忘记了网址),当然还有Stack Overflow - 但是找不到任何东西,甚至远远类似于什么我正在尝试做。
当然,我也考虑过可能根本无法完成的可能性。似乎没有像JButton或JLabel那样工作的任何标准“JImage”或“JGraphic”,无论出于何种原因,图形需要完全不同的(非常复杂的)流程和程序列表。作为一个例子,在这篇文章中:How to "really" draw images in a Java app - 我花了60多行代码和2个类来接近。该项目最终不起作用,因为由于某种原因,它只会让我创建一个实例(即使你在main方法中创建了2-4个,它只显示你告诉它添加的最后一个实例)。 p>
但无论如何,假设我不是在试图“重新发明轮子”,这实际上是可能的(在Java中),是否有人知道如何(或至少知道一个更好的网站到研究它)?不幸的是,我访问过的大部分网站都倾向于假设你知道图像的所有内部工作原理(我知道像素是什么,但就是它 - Buffers,Rastars等仍然超出我的范围)。如果有一个网站可以用非专业人的术语解释它,如果这样的网站存在,那将是绝对优秀的。提前谢谢。
答案 0 :(得分:5)
只需使用普通的旧JLabel。
关于您的要求:
将图像放在窗口(JFrame,JPanel或其他容器)上。
您可以为JLabel提供感兴趣图像的ImageIcon,它将显示它。然后可以将其轻松放置在任何其他容器中,例如JPanel或JFrame。
能够支持键盘和鼠标监听器
任何扩展JComponent的组件(例如JLabel)都允许使用MouseListener,MouseMotionListener,并且可以通过键绑定侦听键盘输入。
可以在同一个容器中有多个实例
您可以根据需要添加任意容器。只是认识并尊重使用中的布局管理器。