【发布时间】:2013-10-11 08:27:47
【问题描述】:
我想要一个可调整大小的应用程序,并且我正在构建一个嵌套面板 GUI。在一个面板中,我需要 Spinners 和 Labels。我想要 Spinner 左侧的标签。在考虑调整大小问题时,实现此目的的最佳方法是什么:
1.我可以创建一个垂直的 BoxLayout 面板,并添加 x 个子面板,其中每个子面板是 包含一个标签和一个微调器:
JPanel ControlPanel = new JPanel();
ControlPanel.setLayout(new BoxLayout(ControlPanel, BoxLayout.Y_AXIS));
JPanel LabelledSpinner = new JPanel();
LabelledSpinner .setLayout(new BoxLayout(LabelledSpinner , BoxLayout.X_AXIS));
JLabel lab1 = new JLabel("Label1");
JSpinner spin1 = new JSpinner();
spin1.setModel(new SpinnerNumberModel(300, 10, 3000, 10));
LabelledSpinner .add(lab1);
LabelledSpinner .add(spin1);
ControlPanel.add(LabelledSpinner );
或
2.我可以创建一个 2 列 x 行的 GridBagLayout 面板。然后每一行都会有一个标签,然后是一个微调器。
哪个最好?
或者这个“常见”的标签问题有更简单的解决方案吗?
【问题讨论】:
-
对我来说,'GridBagLayout Panel with 2 columns and x rows'更好
-
无关:请学习java命名约定并遵守它们。
-
嵌套的痛苦或自己造成的 :-) 或者换句话说:根本不要使用嵌套面板,而是使用一个体面的 LayoutManager,它足够强大,可以轻松配置一个包含所有面板的面板。我个人最喜欢的是 MigLayout。
-
另见相关example。