Java图形作为对象/类

use*_*876 1 java swing image

我很抱歉这很可能是太基本是在这里,但它是一个问题,我一直在努力,现在用了一个月,我不知道还有什么地方去(据我所知,应该没有" 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
Run Code Online (Sandbox Code Playgroud)

所以无论如何我已经尝试了所有常用的地方 - 谷歌,YouTube,官方Java网站(抱歉忘记了URL),当然还有堆栈溢出 - 但是找不到任何东西,甚至远远类似于我的东西试图做.

当然,我也考虑过可能根本无法完成的可能性.似乎没有像JButton或JLabel那样工作的任何标准"JImage"或"JGraphic",无论出于何种原因,图形需要完全不同的(非常复杂的)流程和程序列表.作为一个例子,在这篇文章中:如何"真正"在Java应用程序中绘制图像 - 我花了60多行代码和2个类来接近.该项目最终不起作用,因为出于某种原因,它只会让我创建一个实例(即使你在main方法中创建了2-4个,它也只显示你告诉它添加的最后一个实例).

但无论如何,假设我没有试图"重新发明轮子",这里,它实际上是可能(在Java中),没有任何人有一个想法,以如何(或者至少知道一个更好的网站,研究它) ?不幸的是,我访问过的大部分网站都倾向于假设你知道图像的所有内部工作原理(我知道像素是什么,但就是它 - Buffers,Rastars等仍然超出我的范围).如果有一个网站能够以外行的方式解释它,如果这样的网站存在,那将是绝对优秀的.提前致谢.

Hov*_*els 5

只需使用普通的旧JLabel.

关于您的要求:

将图像放在窗口(JFrame,JPanel或其他容器)上.

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

能够支持键盘和鼠标监听器

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

可以在同一个容器中有多个实例

您可以根据需要添加任何容器.只是认识和尊重使用中的布局管理器.