我正在尝试将该面板创建为一个类,但是它无法正常工作,并试图使其也进入框架。我收到“这不是课程错误”

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

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

最佳答案

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



TopPanel.setLayout(new BorderLayout());
TopPanel.add(Crse, BorderLayout.NORTH);


正在尝试使用您不想要的类...

您在行()上也缺少public TopPanel {(类中的一个,而不是定义该类的一个)

CrseTopPanel创建者中的局部变量,因此不能在CourseGUI()中使用它

TopPanel正在创建一个框架以使其自身变得奇怪...

10-04 23:23