【问题标题】:only one JLabel displaying at a time (Java Swing) [duplicate]一次只显示一个JLabel(Java Swing)[重复]
【发布时间】:2017-05-26 21:05:00
【问题描述】:

我创建了一个 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);
    }
}

【问题讨论】:

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


【解决方案1】:

通常,当您想向容器中添加多个组件时(就像您在 JFrame 中使用 JLabels 所做的那样),您必须决定要使用哪个布局管理器,以便组件显示在您的位置想要。

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

【讨论】:

    【解决方案2】:

    您需要选择一个Layout Manager,并相应地调用setLayout

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-02-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多