一次只显示一个JLabel(Java Swing)

时间:2017-01-11 22:11:08

标签: java swing jlabel layout-manager border-layout

我创建了一个JLabel作为标题并对其进行了自定义,显示没有任何问题。当我尝试创建第二个JLabel时出现问题,因为只显示第二个JLabel。当我创建第三个时,只会显示但不会显示第一个和第二个。

基本上,只显示最新的JLabel。如何同时显示多个JLabel。

这是我的代码。

public class MainForm extends JFrame {

EmployeeDAO dao = new EmployeeDAO();
private static JLabel label, name;


MainForm()
{
    super("Employee Database");
    GUI();  
}

private void GUI()
{
    JLabel label = new JLabel("Enter Employee Information");
    label.setVerticalAlignment(JLabel.TOP);
    label.setHorizontalAlignment(JLabel.CENTER);
    label.setFont(new Font("Serif", Font.PLAIN, 20));
    label.setForeground(Color.red);
    add(label);

    JLabel name = new JLabel("Name: ");
    add(name);
    }
}

3 个答案:

答案 0 :(得分:0)

通常,当您想要向容器添加多个组件时(因为您正在使用JFrame中的JLabel),您必须确定要使用哪个布局管理器,以便组件显示在你想要的职位。

您应该查看与laying out components in containers相关的教程。

答案 1 :(得分:0)

您需要选择Layout Manager,然后相应地致电setLayout

答案 2 :(得分:0)

对要添加到场景中的每个元素使用.setBounds,或使用其他布局(如网格布局)来定位UI元素。问题源于你添加一个新元素,它在前一个元素之上。