JPanel到JFrame - 将面板类移动到框架GUI

时间:2014-04-30 04:45:46

标签: java swing jpanel frame

如何让Panel进入框架。我已经尝试了好几个小时而且没有得到它。

我尝试了JPanel panel = new TopPanel();,但它不会调用帧。一周前,我们的老师教给我们初学者课程,从那以后,我一直很困惑。

感谢您提前帮助,请解释。

框架:

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.setVisible(true);
    }
    public static void main(String[] args)
    {
        new CourseGUI();
    }

}

小组(假设位于顶部)

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

    }
}

1 个答案:

答案 0 :(得分:0)

在TopPanel类中,您只需将标签添加到另一个JPanel对象面板中,此面板不会添加到TopPanel中。我在你的TopPanel课上做了一些改动。 (如果需要,您可以更改布局)

 import javax.swing.*;
 import java.awt.*;


 public class TopPanel extends JPanel {

     public TopPanel() {

         JLabel Crse = new JLabel("Course Info");
         Crse.setFont(new Font("Serif", Font.PLAIN, 14));
        add(Crse);

     }
 }

在CourseGui中使用此TopPanel

  JPanel topPanel = new TopPanel();

如果有效,请尝试接受

您也可以使用

    JPanel topPanel = new JPanel();
    JLabel Crse = new JLabel("Course Info");
    Crse.setFont(new Font("Serif", Font.PLAIN, 14));
    topPanel.add(Crse);