此面板类假设打印出“课程信息”但是当我尝试在GUI上打印出来时,gui框架显示但不显示Panel。所以我觉得面板代码是问题,如何让“课程信息”出现?如果标签工作正常,为什么当我将标签发布到gui时,它只显示另一个空白框架?
面板:
import javax.swing.*;
import java.awt.*;
public class TopPanel extends JPanel {
public TopPanel(){
JPanel panel = new JPanel();
JLabel Crse = new JLabel("Course Info");
Crse.setFont(new Font("Serif", Font.PLAIN, 14));
panel.add(Crse);
}
}
GUI代码:
import javax.swing.*;
import java.awt.*;
public class CourseGUI extends JFrame {
public CourseGUI()
{
super("CourseGUI Frame");
JPanel topPanel = new JPanel();
topPanel.setBackground(java.awt.Color.WHITE);
Dimension d = new Dimension(800,600);
topPanel.setPreferredSize(d);
this.setLayout(new BorderLayout());
this.add(topPanel, BorderLayout.NORTH);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setSize(800,600);
//JPanel tp = new TopPanel();
//this.add(tp.BorderLayout.North);
JPanel panel = new TopPanel();
this.add(panel, BorderLayout.SOUTH);
this.setVisible(true);
}
public static void main(String[] args)
{
new CourseGUI();
}
}
答案 0 :(得分:2)
试试这个
public TopPanel(){
JLabel Crse = new JLabel("Course Info");
Crse.setFont(new Font("Serif", Font.PLAIN, 14));
add(Crse);
}
您正在创建新的JPanel
,不会在JFrame
中添加。
正如你所做的那样。
this.add(topPanel, BorderLayout.NORTH);
代表JFrame
,但topPanel
没有任何要显示的内容,因为您没有添加任何内容。