我打算写一个学生信息管理系统,但是总加载不出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:
我该怎么做?
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);