gpt4 book ai didi

java - 简单地将 JLabel 添加到 JPanel

转载 作者:搜寻专家 更新时间:2023-11-01 01:00:54 26 4
gpt4 key购买 nike

我有一个简单的问题,因为我不太熟悉 Java GUI。我试图在下面的代码中使 JLable 可见,因为我发现很难理解这个概念。但标签仍然不可见,但框架会在运行时打开。

public class Sample extends JPanel {

public void Sample() {
JPanel p = new JPanel();

JLabel lab1 = new JLabel("User Name", JLabel.LEFT);
p.setLayout(new FlowLayout());
p.add(lab1 = new JLabel("add JLabel"));
}

public static void main(String[] args) {

JFrame frame = new JFrame();
frame.getContentPane().add(new Sample());

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(200, 200);
frame.setVisible(true);
}
}

最佳答案

您忘记添加面板了p取样。要么使用 add(p)最后或只是删除面板 p因为您的示例类正在扩展 JPanel。

选项 1:

    JPanel p = new JPanel();

JLabel lab1 = new JLabel("User Name", JLabel.LEFT);
p.setLayout(new FlowLayout());
p.add(lab1 = new JLabel("add JLabel"));
add(p);

选项 2:

    JLabel lab1 = new JLabel("User Name", JLabel.LEFT);
setLayout(new FlowLayout());
add(lab1 = new JLabel("add JLabel"));

另外,您为什么要覆盖 JLabel 的初始化?在您的代码中,JLable 将始终保持值“add JLabel”。如果您想查看“用户名”,请使用此 add(lab1);而不是 add(lab1 = new JLabel("add JLabel")); .

也许你只需要这个:

    JLabel lab1 = new JLabel("User Name", JLabel.LEFT);
setLayout(new FlowLayout());
add(lab1);

此外,构造函数不能有返回类型,因此请从构造函数中删除 void。

关于java - 简单地将 JLabel 添加到 JPanel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5987600/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com