Java 如何将JLabel序列添加到彼此的正下方?
我只是在向GUI添加一系列JLabel时遇到了一些问题。例如,我需要在屏幕的左侧显示9个jlabel,每个jlabel都在屏幕的正下方。 到目前为止,我得到的是: 公共事务委员会(){ 但是,它们只是显示在彼此旁边。我如何才能使它们位于彼此的正下方,就像在列表上一样?从开始 您不必拘泥于一个容器/布局,您可以将它们组合起来生成复杂的UI 在您的示例中,您试图将多个组件添加到容器的Java 如何将JLabel序列添加到彼此的正下方?,java,swing,layout-manager,Java,Swing,Layout Manager,我只是在向GUI添加一系列JLabel时遇到了一些问题。例如,我需要在屏幕的左侧显示9个jlabel,每个jlabel都在屏幕的正下方。 到目前为止,我得到的是: 公共事务委员会(){ 但是,它们只是显示在彼此旁边。我如何才能使它们位于彼此的正下方,就像在列表上一样?从开始 您不必拘泥于一个容器/布局,您可以将它们组合起来生成复杂的UI 在您的示例中,您试图将多个组件添加到容器的WEST位置,但BorderLayout仅支持在其5个可用位置中的每个位置管理单个组件 此外,在大多数情况下,在尝试将
WEST
位置,但BorderLayout
仅支持在其5个可用位置中的每个位置管理单个组件
此外,在大多数情况下,在尝试将组件添加到容器之前,应该设置布局管理器
以下是使用复合组件/布局生成复杂UI的常用方法
首先
您不必拘泥于一个容器/布局,您可以将它们组合起来生成复杂的UI
在您的示例中,您试图将多个组件添加到容器的WEST
位置,但BorderLayout
仅支持在其5个可用位置中的每个位置管理单个组件
此外,在大多数情况下,在尝试将组件添加到容器之前,应该设置布局管理器
以下是使用复合组件/布局生成复杂UI的常用方法
您可以使用BoxLayout
更多信息:
您可以使用BoxLayout
更多信息:
你看过这个吗?如果你直接需要帮助,你可以按照教程来做。你看过这个吗?如果你直接需要帮助,你可以按照教程来做
JLabel label1 = new JLabel("Meat");
JLabel label2 = new JLabel("Bacon");
JLabel label3 = new JLabel("Capicola");
JLabel label4 = new JLabel("Hamburger");
JLabel label5 = new JLabel("Pepperoni");
JLabel label6 = new JLabel("Meatball");
JLabel label7 = new JLabel("Sausage");
JLabel label8 = new JLabel("Chicken");
JLabel label9 = new JLabel("Linguica");
add(label1, BorderLayout.WEST);
add(label2, BorderLayout.WEST);
add(label3, BorderLayout.WEST);
add(label4, BorderLayout.WEST);
add(label5, BorderLayout.WEST);
add(label6, BorderLayout.WEST);
add(label7, BorderLayout.WEST);
add(label8, BorderLayout.WEST);
add(label9, BorderLayout.WEST);
setLayout(new BorderLayout(9,0));
}
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.EventQueue;
import java.awt.GridLayout;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class Test {
public static void main(String[] args) {
new Test();
}
public Test() {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
JFrame frame = new JFrame();
// This is just a filler
frame.add(new JPanel() {
@Override
public Dimension getPreferredSize() {
return new Dimension(200, 200);
}
});
frame.add(new MenuPane(), BorderLayout.WEST);
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
});
}
public class MenuPane extends JPanel {
public MenuPane() {
setLayout(new GridLayout(0, 1));
add(new JLabel("Meat"));
add(new JLabel("Bacon"));
add(new JLabel("Capicola"));
add(new JLabel("Hamburger"));
add(new JLabel("Pepperoni"));
add(new JLabel("Meatball"));
add(new JLabel("Sausage"));
add(new JLabel("Chicken"));
add(new JLabel("Linguica"));
}
}
}
JPanel panel= new JPanel();
BoxLayout boxlayout = new BoxLayout(panel, BoxLayout.X_AXIS);// from left to rigth
panel.setLayout(boxlayout);
JLabel label1 = new JLabel("Meat");
JLabel label2 = new JLabel("Bacon");
JLabel label3 = new JLabel("Capicola");
JLabel label4 = new JLabel("Hamburger");
...
panel.add(label1);
panel.add(label2);
panel.add(label3);
panel.add(label4);
...
frame.add(panel);