Java 将面板从其他类添加到框架

Java 将面板从其他类添加到框架,java,class,jframe,jpanel,Java,Class,Jframe,Jpanel,我有三节课。类窗口应该包含并设置GUI组件。我想将面板添加到框架中,但下面的代码似乎不起作用。这是编译错误消息: 错误:找不到符号 符号:变量getPanel 位置:Panel类型的变量myPanel class Window { Frame myFrame = new Frame(); Panel myPanel = new Panel(); void run() { myFrame.build(); myPanel.build();

我有三节课。类窗口应该包含并设置GUI组件。我想将面板添加到框架中,但下面的代码似乎不起作用。这是编译错误消息:

错误:找不到符号

符号:变量getPanel

位置:Panel类型的变量myPanel

class Window {
    Frame myFrame = new Frame();
    Panel myPanel = new Panel();

    void run() {
        myFrame.build();
        myPanel.build();
    }

    public static void main(String[] args) {
        (new Window()).run();
    }
}

class Frame {
    JFrame frame;

    Panel myPanel = new Panel();

    void build() {
        frame = new JFrame("Frame");

        frame.add(button, BorderLayout.SOUTH);
        frame.add(myPanel.getPanel); //compilation error: cannot find symbol

        frame.setSize(500, 400);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
    }
}

class Panel extends Frame {
    private JPanel panel;

    void build() {
    panel = new JPanel();
    }

    public JPanel getPanel() {
        return panel;
    }
}

那么如何将面板添加到框架中呢?

您试图调用一个方法
getPanel()
,但您只需键入
getPanel
即可调用它

缺少括号,这表示您正在调用一个方法,而不仅仅是访问一个变量

更改此行:

frame.add(myPanel.getPanel);
为此:

frame.add(myPanel.getPanel());

此外,将来一定要包括整个错误消息,而不仅仅是您认为重要的部分。这将帮助我们快速发现问题,从而能够更快地帮助您。

谢谢,它很有效!不过,现在我有了一个新问题。运行后我得到的新错误消息是:java.lang.StackOverflowerError在面板上。(randomArtister.java:40)在帧上。(randomArtister.java:25)在面板上。(randomArtister.java:40)在帧上。(randomArtister.java:25)也许您应该为这个错误创建一个新问题,以便我们可以提供更多帮助