如何在JavaSwing中对齐组件?

如何在JavaSwing中对齐组件?,java,swing,layout-manager,Java,Swing,Layout Manager,我正在用Java构建一个简单的初学者应用程序,我需要您帮助我调整组件。我要做的是将组件(JLabel“name”)对齐到面板的左侧。我已经尝试过使用“new FlowLayout(FlowLayout.LEFT)”,但它不起作用,所以我请求您帮助我。下面是框架的图片和源代码 public class firstClass extends JFrame implements ActionListener { private JFrame frame1; private JFrame frame

我正在用Java构建一个简单的初学者应用程序,我需要您帮助我调整组件。我要做的是将组件(JLabel“name”)对齐到面板的左侧。我已经尝试过使用“new FlowLayout(FlowLayout.LEFT)”,但它不起作用,所以我请求您帮助我。下面是框架的图片和源代码

public class firstClass extends JFrame implements ActionListener {


private JFrame frame1;
private JFrame frame2;
private JPanel mainPanelFirst;
private JPanel secondPanel;
private JButton newWindowButton;
private int mulitplyPanels;
private JLabel leftLabel;
private JLabel rightLabel;
private JComboBox leftCB;
private JComboBox rightCB;
第一个窗口:

}

第二个窗口(包括我要对齐的标签):


感谢您的帮助:)

警告请同时阅读以下内容:

由于JFrame不可调整大小,请为topPanel指定一个定义的大小:

JPanel topPanel = new JPanel();
topPanel.setPreferredSize(new Dimension(600,100));
topPanel.setLayout(new FlowLayout(FlowLayout.LEFT,400,20));

警告同时阅读以下内容:

由于JFrame不可调整大小,请为topPanel指定一个定义的大小:

JPanel topPanel = new JPanel();
topPanel.setPreferredSize(new Dimension(600,100));
topPanel.setLayout(new FlowLayout(FlowLayout.LEFT,400,20));

我建议您的应用程序使用布局管理器。你要找的最有可能是BorderLayout,除非你想要特定的功能来控制对象的布局位置和方式

希望这有帮助


我建议您的应用程序使用布局管理器。你要找的最有可能是BorderLayout,除非你想要特定的功能来控制对象的布局位置和方式

希望这有帮助


有许多布局管理器可供您使用,我强烈建议您查看和了解更多详细信息。还请记住,您不仅限于一个布局管理器,还可以使用一系列复合容器,所有容器都使用不同的布局管理器来实现更复杂的布局1)提供ASCII艺术或GUI预期布局的简单绘图,最小尺寸,如果可调整大小,则具有更大的宽度和高度。2) 为了更快地获得更好的帮助,请发布一个or。3) 请参阅,以了解一个我不再费心解决的问题。
我已经尝试了“new FlowLayout(FlowLayout.LEFT)”,但它不起作用
-它应该起作用,但您没有在代码中显示您尝试的内容。如果
新建FlowLayout(FlowLayout.LEFT)
将完全起作用——我不是说它会起作用——它需要应用于包容层次结构的所有级别。也就是说,在
JFrame
本身,以及
secondPanel
和'topPanel'上。是的,您需要在secondPanel和topPanel上使用它,但不需要在框架上。有许多布局管理器可供您使用,我强烈建议您查看并了解更多详细信息。还请记住,您不仅限于一个布局管理器,还可以使用一系列复合容器,所有容器都使用不同的布局管理器来实现更复杂的布局1)提供ASCII艺术或GUI预期布局的简单绘图,最小尺寸,如果可调整大小,则具有更大的宽度和高度。2) 为了更快地获得更好的帮助,请发布一个or。3) 请参阅,以了解一个我不再费心解决的问题。
我已经尝试了“new FlowLayout(FlowLayout.LEFT)”,但它不起作用
-它应该起作用,但您没有在代码中显示您尝试的内容。如果
新建FlowLayout(FlowLayout.LEFT)
将完全起作用——我不是说它会起作用——它需要应用于包容层次结构的所有级别。也就是说,在
JFrame
本身,以及
secondPanel
和'topPanel'上。是的,您需要在secondPanel和topPanel上使用它,但不需要在frame上。不起作用
leftLabel
被添加到带有
FlowLayout
的面板中,该面板完全忽略布局约束。@KevinAnderson你说得对。我已经测试了新答案。非常感谢!我已将hgap更改为50,将vgap更改为20,并将标签设置为左侧。
topPanel.setPreferredSize(新尺寸(600100))
See(Yes.)@AndrewThompson我知道要避免使用这三个词,但是,我只是以最简单的方式回答了这个问题。我要补充的是警告无效
leftLabel
被添加到带有
FlowLayout
的面板中,该面板完全忽略布局约束。@KevinAnderson你说得对。我已经测试了新答案。非常感谢!我已将hgap更改为50,将vgap更改为20,并将标签设置为左侧。
topPanel.setPreferredSize(新尺寸(600100))
See(Yes.)@AndrewThompson我知道要避免使用这三个词,但是,我只是以最简单的方式回答了这个问题。我将添加警告
JPanel topPanel = new JPanel();
topPanel.setPreferredSize(new Dimension(600,100));
topPanel.setLayout(new FlowLayout(FlowLayout.LEFT,400,20));