Java 使用包含图像的JLabel自动滚动

Java 使用包含图像的JLabel自动滚动,java,swing,jscrollpane,jlabel,Java,Swing,Jscrollpane,Jlabel,我想尝试一些东西,但我不知道如何去做,也不确定是否有可能 我有一个使用GridLayout的jLabel的JPanel。然后将此JPanel添加到JScrollPane中 如果jlabel中有图像,则为一个。这个图像应该告诉我程序中的角色在哪里。我只是想知道它的位置。因此,基本上,当我想要移动角色时,我会从当前JLabel中删除图像,并将其添加到下一个JLabel中。我知道这可能是有史以来最糟糕的方法,但我是新来的,我只知道Java,我有一个最后期限,没有想过要用Java学习游戏开发 无论如何,

我想尝试一些东西,但我不知道如何去做,也不确定是否有可能

我有一个使用GridLayout的jLabel的JPanel。然后将此JPanel添加到JScrollPane中

如果jlabel中有图像,则为一个。这个图像应该告诉我程序中的角色在哪里。我只是想知道它的位置。因此,基本上,当我想要移动角色时,我会从当前JLabel中删除图像,并将其添加到下一个JLabel中。我知道这可能是有史以来最糟糕的方法,但我是新来的,我只知道Java,我有一个最后期限,没有想过要用Java学习游戏开发

无论如何,因为我使用的是JScrollPane,所以当无法再看到带有图像的JLabel时,我希望程序能够自动滚动。因此,当角色移动时,JSCrollPane会滚动,所以我不必滚动到它。它是为我做的。就像一架照相机在观察它的去向

这可能吗

非常感谢

我知道这可能是有史以来最糟糕的方法

你会得到非常可怕的移动,因为角色会一次跳转许多像素(取决于图像的大小)

因此,当角色移动时,JSCrollPane会滚动,所以我不必滚动到它


将图标添加到其他标签后,可以使用标签的
scrollRectToVisible(..)
方法。您需要使矩形大小等于scrollpanes视口的大小,以强制视口每次滚动。因此,您需要计算x/y位置,以确保标签在视口中居中。

听起来像是家庭作业。超越自己的能力永远不是一个好主意;坚持在你的能力的边缘,做你已经知道你能做的最好的项目。检查字符是否可见(小于最远可见的JLabel),必要时滚动。尽管如此,你还是无法通过比你能承受的体重多200磅来锻炼肌肉;你可以用几百次的板凳来建造它。嗨,Aarowaim,谢谢你的建议,我真的很感激。你说得对,我知道的不多。然而,这不是家庭作业,它实际上是我工作安排的一个发展项目。我想展示我能做什么,但看起来不太好。我有很多东西要学。但是谢谢你:)哈哈,我明白了。如果您需要帮助确定您的角色是否可见,请发布一些代码并展示您的尝试;我相信我们能帮上忙,因为你似乎已经知道了基础知识。您认为使用实际图形而不是拼凑一个swing GUI会更容易吗?另一方面,你可以随意重载一个框架的
公共虚空绘制(图形g)
,但不要丢弃你现有的代码。你对移动的看法是正确的,有时候图像会改变,有时候不会。谢谢,我将尝试scrollRectToVisible(..)方法:)