Java 创建类并进入框架

Java 创建类并进入框架,java,swing,jpanel,Java,Swing,Jpanel,我试图将这个面板创建到一个类中,但它不起作用,试图使它也进入框架中。我得到了“这不是一个类错误” 请向我解释我做错了什么。编程很有趣,直到你在一个问题上被困了几个小时。 专家组: 框架: import javax.swing.*; import java.awt.*; public class CourseGUI extends JFrame { public CourseGUI() { super("CourseGUI Frame");

我试图将这个面板创建到一个类中,但它不起作用,试图使它也进入框架中。我得到了“这不是一个类错误”

请向我解释我做错了什么。编程很有趣,直到你在一个问题上被困了几个小时。 专家组:

框架:

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

}
提前谢谢

我换了顶面板:

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

TopPanel
是您的类名,
TopPanel
是您的
JPanel
实例。(Java区分大小写)

线条像

TopPanel.setLayout(new BorderLayout());
TopPanel.add(Crse, BorderLayout.NORTH);
正在尝试使用的类不是您想要的

您的
)行
public-TopPanel{
(类内的那一行,而不是定义类的那一行)上也缺少

Crse
TopPanel
creator中的局部变量,因此不能在
CourseGUI()中使用它


TopPanel
正在创建一个框架,将自己放入其中,这很奇怪……

是否包括实际的错误消息(这样我们就知道它来自何处)?我收到了39条关于TopPanel不存在的错误消息,我的教学告诉我们不要将TopPanel作为主要方法。它必须是一个类,一旦我去掉了main并将公共静态void main更改为公共TopPanel,错误无处不在,帮帮忙谢谢谢谢谢谢!它现在起作用了,但什么都没有显示,“课程信息”我想显示的东西根本没有显示出来。事实上,它是一个完全空白的gui,为什么呢?对不起,我对它非常陌生在上面的代码中,
CourseGUI
类只是创建一个普通的
JPanel
,而不是
TopPanel
(包含您的gui)。注意:您也需要从
TopPanel
类中删除框架内容。如何使用TopPanel?
JPanel panel=new-TopPanel();
您确实需要和您的导师谈谈。这是基本内容!我的老师说了一些关于TopPanel tp;tp=newTop();this.add(tp.BorderLayout.North);
TopPanel.setLayout(new BorderLayout());
TopPanel.add(Crse, BorderLayout.NORTH);