【问题标题】:Getting Labels a name with a label使用标签获取标签名称
【发布时间】:2014-04-30 05:07:17
【问题描述】:

这个面板类应该打印出“课程信息”但是当我尝试在 GUI 上打印出来时,显示的是 gui 框架而不是面板。所以我觉得面板代码是问题,如何让“课程信息”出现?如果标签工作正常,为什么当我将标签发布到 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);

    }
}

界面代码:

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();
    }

}

【问题讨论】:

    标签: java swing jframe jpanel jlabel


    【解决方案1】:

    这样试试

     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);
    

    对于JFrametopPanel 没有任何内容可显示,因为您没有添加任何内容。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-10-27
      • 2020-11-19
      • 1970-01-01
      • 2014-07-12
      • 2023-01-27
      • 1970-01-01
      • 2021-05-28
      相关资源
      最近更新 更多