【问题标题】:Java graphic as an object/classJava 图形作为对象/类
【发布时间】:2013-07-14 15:11:31
【问题描述】:

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

我正在尝试创建一个类:

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 等仍然超出我的范围)。如果有一个网站可以用外行的方式解释它,那将是绝对出色的,如果这样的网站存在的话。提前致谢。

【问题讨论】:

    标签: java image swing


    【解决方案1】:

    只需使用普通的旧 JLabel。

    关于您的要求:

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

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

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

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

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

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

    【讨论】:

    • 谢谢!我不知道标签可以保存图像(我认为标签 = 文本/字符串),但是当我查看 ImageIcon 时,它可以在几秒钟内工作!我只是花了半天的时间试图弄清楚这一点,所以这是一个巨大的帮助。 :)
    • @user2403876:很高兴这对您有所帮助。祝你好运!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-12-04
    • 1970-01-01
    • 1970-01-01
    • 2016-11-26
    • 1970-01-01
    • 1970-01-01
    • 2015-06-28
    相关资源
    最近更新 更多