我想要一个可调整大小的应用程序,我正在构建一个嵌套的面板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 );
OR
2.我可以创建一个包含2列和x行的GridBagLayout面板。然后每一行都有一个标签,然后是一个微调器。
哪种最好?
或者这种“常见”标签问题是否有更简单的解决方案?
答案 0 :(得分:0)
使用布局管理器方法肯定更好。
有一个JDK Swing教程,讨论使用 SprintLayoutManager 构建布局等形式 http://docs.oracle.com/javase/tutorial/uiswing/layout/spring.html
从标准布局管理器开始。当您使用不同的布局管理器时,您最终会想出一个最适合您需求的组合。
另一个替代方法是使用GroupLayout,它可以帮助向表单UI添加稍微复杂的组件。 http://docs.oracle.com/javase/tutorial/uiswing/layout/groupExample.html
希望有所帮助。