调整layeredPane中所有组件的大小,同时保持相对位置和大小



我使用SwinglayeredPanes制作了一个GUI,指定了大约60个项目的尺寸和(x,y)坐标。我设置的JFrame尺寸是(1080,720),但我现在需要重新调整整个尺寸以适合(800,600)。

是否有一种快速的方法来调整整个屏幕的大小,使所有的图像和文本保持其位置和相对大小,而不需要通过每个组件并重新指定其setBounds(x, y, width, height) ?

你可以添加一个ComponentListener到你的JLayeredPane,然后在

void componentResized(ComponentEvent e)

你可以根据当前的高度和宽度重新调整一切,以保持一个特定的比例。你可以做一些简单的计算,比如得到720和当前宽度之间的差比,然后将每个组件的宽度调整为它们的实际宽度乘以这个比值。

然后对高度执行相同的操作。这样所有的东西都会保持长宽比。

我还会将每个组件存储在List中,以便更容易地访问它们。

编辑:我刚刚重读了你的问题:

而不需要遍历每个组件并重新指定

我在回答的时候忘记了这一点,我不认为有一种简单的方法可以做到这一点,而不把它们都看一遍。但是有一些简单的方法可以循环遍历它们!

相关内容

  • 没有找到相关文章

最新更新