如何链接JLabel和JSpinner以调整大小

时间:2013-10-11 08:27:47

标签: java swing jframe

我想要一个可调整大小的应用程序,我正在构建一个嵌套的面板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面板。然后每一行都有一个标签,然后是一个微调器。

哪种最好?

或者这种“常见”标签问题是否有更简单的解决方案?

1 个答案:

答案 0 :(得分:0)

  1. 使用布局管理器方法肯定更好。

  2. 有一个JDK Swing教程,讨论使用 SprintLayoutManager 构建布局等形式 http://docs.oracle.com/javase/tutorial/uiswing/layout/spring.html

  3. 从标准布局管理器开始。当您使用不同的布局管理器时,您最终会想出一个最适合您需求的组合。

    另一个替代方法是使用GroupLayout,它可以帮助向表单UI添加稍微复杂的组件。 http://docs.oracle.com/javase/tutorial/uiswing/layout/groupExample.html

    希望有所帮助。