Java 向BoxLayout的下一行添加标签

Java 向BoxLayout的下一行添加标签,java,swing,oop,layout,Java,Swing,Oop,Layout,我有一个方框布局,旁边有一个JLabel和一个按钮,例如: JFrame frame = new JFrame(); JPanel panel = new JPanel(); panel.setLayout(new BoxLayout(panel,BoxLayout.X_AXIS)); panel.add(new JLabel("Reference ")); panel.add(new JButton("HI")); frame.add(pa

我有一个方框布局,旁边有一个JLabel和一个按钮,例如:

    JFrame frame = new JFrame();
    JPanel panel = new JPanel();

    panel.setLayout(new BoxLayout(panel,BoxLayout.X_AXIS));
    panel.add(new JLabel("Reference  "));
    panel.add(new JButton("HI"));

    frame.add(panel);
    frame.setSize(500,300);
    frame.setVisible(true);    
这将正确地显示一个名为reference的标签,并在其旁边显示一个按钮。但是如果我想在它的正下方展示同样的东西(一个新标签和另一个按钮),我会怎么做呢

因为简单地创建另一个面板,并模仿我以前所做的,似乎不起作用

或者在新标签中使用HTML,如

JLabel s = new JLabel("<html> <br>newLaberl </html>");
JLabel s=newjlabel(
newLaberl”);

将此添加到面板中仍然会在按钮后的同一行打印,而不是下一行,有什么想法吗?

您只需设置JFrame的布局,然后按照您所说的方式工作即可。 我使用了您的示例,将框架布局设置为使用


boxlayout可能不是这种东西的最佳布局,我建议你去

并查看Oracle文档网站上记录的各种布局和教程

这一个可能对你的应用有用

JLabel s = new JLabel("<html> <br>newLaberl </html>");
    JFrame frame = new JFrame();
    JPanel panel = new JPanel();
    JPanel panel2 = new JPanel();

    frame.setLayout(new GridLayout(2,1));
    panel.setLayout(new BoxLayout(panel,BoxLayout.X_AXIS));
    panel.add(new JLabel("Reference  "));
    panel.add(new JButton("HI"));

    panel2.setLayout(new BoxLayout(panel2,BoxLayout.X_AXIS));
    panel2.add(new JLabel("Reference2  "));
    panel2.add(new JButton("HI2"));

    frame.add(panel);
    frame.add(panel2);
    frame.setSize(500,300);
    frame.setVisible(true);