问题描述
我正在使用Java开发更大的GUI,我对布局管理器感到愤怒。
I am working on a larger GUI with Java and I am becoming angry on Layout Managers.
我有一个设置 - 面板,其中包含可变数量的JComponents在它(标签,按钮,JSpinners,JSliders,...)。我只想要以下内容:
I have a "Settings-Panel" with a variable number of JComponents in it (Labels, Buttons, JSpinners, JSliders,...). I just want the following:
JLabel< - > JComponent
JLabel <-> JComponent
JLabel< - > JComponent
JLabel <-> JComponent
JLabel< - > JComponent
JLabel <-> JComponent
...
我的面板大小为500px,因此有足够的空间容纳很多组件。不幸的是,即使我为每个组件设置了MaximumSize,GridLayout总是会将组件的大小拉伸到整个Panel。如果只有两个按钮,每个高度为250px,它看起来很愚蠢。
My Panel has a size of 500px, so that there is enough space for a lot of components. Unfortunatly the GridLayout always stretches the size of the Components to the whole Panel, even if I set a MaximumSize for every component. It looks stupid if there are only two buttons each with a height of 250px.
我试过流布局,但我无法找到一种方法来正确制作新行。我尝试过BoxLayout.Y_AXIS,但是Component总是居中,而Label和Component不在同一行。
I tried flow Layout, but i cannot figure out a way to make new lines properly. I tried BoxLayout.Y_AXIS, but the Components are always centered, and Label and Component are not in the same line.
有没有人知道LayoutManagers的优缺点正确处理这个问题?
Does anybody know a good and short way with LayoutManagers to handle this properly?
推荐答案
其他布局的替代方案可能是将面板与GridLayout放在另一个面板中一个FlowLayout。这样你的间距将保持不变,但不会扩展到整个可用空间。
An alternative to other layouts, might be to put your panel with the GridLayout, inside another panel that is a FlowLayout. That way your spacing will be intact but will not expand across the entire available space.
这篇关于如何使用GridLayout设置组件大小?有没有更好的办法?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!