将来自不同 class 的面板添加到框架

Adding panel from a different class to frame

我有 3 个 class。 class Window 应该包含和设置 GUI 组件。我想将面板添加到框架,但下面的代码似乎不起作用。这是编译错误信息:

错误:找不到符号

符号:变量getPanel

位置:面板类型的变量 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());

此外,以后一定要包含完整的错误消息,而不仅仅是您认为重要的部分。这将有助于我们快速找到问题,从而能够尽快为您提供帮助。