获取标签带有标签的名称

时间:2014-04-30 05:07:18

标签: java swing jframe jpanel jlabel

此面板类假设打印出“课程信息”但是当我尝试在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();
    }

}

1 个答案:

答案 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没有任何要显示的内容,因为您没有添加任何内容。