创建一个类并进入框架

时间:2014-04-30 02:40:49

标签: java swing jpanel

我正在尝试将这个Panel创建为一个类,但它不起作用,试图让它进入Frame。我得到了"这不是课堂错误"

请向我解释我做错了什么。编程很有趣,直到你遇到一个问题几个小时。 面板:

import java.awt.Button;

import java.awt.Font;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

public class TopPanel extends JPanel {

    public TopPanel{
        JPanel panel = new JPanel();
        JFrame frame = new JFrame("Create a frame");
        frame.getContentPane().add(panel);
        Button button = new Button("111");
        JLabel Crse = new JLabel("Course Info");
        Crse.setFont(new Font("Serif", Font.PLAIN, 14));
        panel.add(Crse);
        panel.add(button);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(800, 600);
        frame.setVisible(true);
    }
}

框架:

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


        TopPanel.setLayout(new BorderLayout());
        TopPanel.add(Crse, BorderLayout.NORTH);
        this.setVisible(true);
    }
    public static void main(String[] args)
    {
        new CourseGUI();
    }

}

先谢谢。

我更改了TopPanel:

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);
        panel.add(button);
    }
}

1 个答案:

答案 0 :(得分:1)

TopPanel是您的班级名称,topPanel是您的JPanel个实例。 (Java区分大小写)。

这样的行
TopPanel.setLayout(new BorderLayout());
TopPanel.add(Crse, BorderLayout.NORTH);

尝试使用的不是你想要的类......

()行({1}}(班级内的那个,而不是定义班级的人)

public TopPanel {Crse创建者中的局部变量,因此您无法在TopPanel内使用

CourseGUI()正在创建一个框架,让自己陷入奇怪的境地......