我想尝试一些东西,但我不知道如何解决这个问题,并且不确定它是否可能。
我使用GridLayout获得了JLabel的JPanel。然后将此JPanel添加到JScrollPane。
如果JLabel中有图像,则为一个。该图像应该向我显示程序中的角色。我只是一个JLabal所以我可以得到它的位置。所以基本上当我想移动角色时,我从当前的JLabel中删除图像并将其添加到下一个JLabel中。我知道这可能是有史以来最糟糕的方法,但我是新手,我所知道的只是Java,我有一个截止日期,并没有想到用Java学习游戏开发。
无论如何,因为我正在使用JScrollPane,所以我希望程序能够在无法再看到带有图像的JLabel时自动滚动。因此,当角色移动时,JSCrollPane正在滚动,所以我不必滚动到它。它适合我。就像一台摄像机一样,看着它的发展方向。
这可能吗?
非常感谢!!
答案 0 :(得分:0)
我知道这可能是有史以来最糟糕的做法
你会得到非常糟糕的动作,因为角色一次会跳过很多像素(取决于图像的大小)。
因此,当角色移动时,JSCrollPane会滚动,所以我不必滚动到它。
将图标添加到其他标签后,您可以使用标签的scrollRectToVisible(..)
方法。您需要使Rectangle大小等于scrollpanes视口的大小,以强制视口每次都滚动。因此,您需要计算x / y位置以确保标签在视口中保持居中。