swing不显示JLabel

我打算写一个学生信息管理系统,但是总加载不出addStudent.panel中的JLabel
MainActivity.java:

package com.example;
import javax.swing.*;
import com.formdev.flatlaf.*;
import java.awt.*;

public class MainActivity extends JFrame {
    MainActivity() {
        try {
            UIManager.setLookAndFeel(new FlatIntelliJLaf());
        } catch (Exception ex) {
            System.out.println("Failed to initialize LaF");
        }

        setTitle("学生信息管理系统");
        setSize(600, 600);
        setResizable(false);
        setVisible(true);
        setLocationRelativeTo(null);
        setDefaultCloseOperation(EXIT_ON_CLOSE);

        JPanel panel = new JPanel(null);
        JTabbedPane jtp = new JTabbedPane();
        jtp.setBounds(0, 0, 600, 33);

        AddStudent addStudent = new AddStudent();
        jtp.addTab("新增学生", addStudent.panel);

        panel.add(jtp);
        add(panel);
    }

    public static void main(String[] args) throws Exception {
        SwingUtilities.invokeAndWait(new Runnable() {
            @Override
            public void run() {
                new MainActivity();
            }
        });
    }
}

AddStudent.java:

package com.example;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import com.formdev.flatlaf.FlatIntelliJLaf;

public class AddStudent {
    JPanel panel = new JPanel(null);

    public AddStudent() {
        try {
            UIManager.setLookAndFeel(new FlatIntelliJLaf());
        } catch (Exception ex) {
            System.out.println("Failed to initialize Laf");
        }

        Font font = new Font("微软雅黑", Font.BOLD, 15);
        JLabel nameJl = new JLabel("姓名: ");
        nameJl.setBounds(100, 50, 100, 30);
        nameJl.setFont(font);
        panel.add(nameJl);
    }
}

这个程序刚开发一点。运行出来是这样,就是不显示JLabel:

img

我该怎么做?

AddStudent类的panel字段不要赋初值,要用了再赋。

【以下回答由 GPT 生成】

我期望能够在学生信息管理系统中显示addStudent.panel中的JLabel。但是,出现问题时,addStudent.panel中的JLabel没有被显示。请注意,在代码中创建的JLabel并没有添加到addStudent.panel中。

要解决这个问题,你需要在AddStudent类中添加一个JLabel,并将其添加到panel中。此外,还需要设置JLabel的位置和大小,以确保它在panel中可见。

下面是修改后的AddStudent类的代码示例:

package com.example;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import com.formdev.flatlaf.FlatIntelliJLaf;

public class AddStudent {
    JPanel panel = new JPanel(null);
    JLabel label = new JLabel("学生信息");

    AddStudent() {
        label.setBounds(10, 10, 100, 30);
        panel.add(label);
    }
}

通过在AddStudent类的构造函数中添加label,并设置其位置和大小,然后将其添加到panel中,你就可以在学生信息管理系统中看到label了。请注意,为了使label能够正确显示,你可能还需要根据需要调整其位置和大小。

希望这可以帮助到你!



【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^

这里有学生管理系统教程20套面向对象程序设计选题Java Swing(含教程)持续更新_专治八阿哥的孟老师的博客-CSDN博客

你的布局写的不对


 //这里
        JPanel panel = new JPanel(new BorderLayout());
        JTabbedPane jtp = new JTabbedPane();
        jtp.setBounds(0, 0, 600, 33);

        AddStudent addStudent = new AddStudent();
        jtp.addTab("新增学生", addStudent.panel);
        //这里
        panel.add(jtp, BorderLayout.NORTH);

img