0

我想从内部 Action 类调用外部类的方法 getContentPane()。我不明白为什么我的代码不起作用。

public class MainFrame extends JFrame {
    public MainFrame() {
        super("My app");
        JMenuBar menuBar = new JMenuBar();
        setJMenuBar(menuBar);

        JMenu myMenu = new JMenu("File");
        menuBar.add(myMenu);
        Action myAction = new AbstractAction("Do everything") {
            public void actionPerformed(ActionEvent e) {
                JPanel panel = new JPanel();
                panel.setBackground(Color.CYAN);
                getContentPane().add(panel, BorderLayout.CENTER);
            }
        };
        myMenu.add(myAction);
    }
}
4

1 回答 1

1

您必须在 之后调用validate();方法getContentPane().add(...);

validate 方法用于使容器重新布置其子组件。在容器显示后修改此容器的子组件(添加到容器或从容器中删除,或更改布局相关信息)时,应调用它。

于 2012-04-04T10:51:55.830 回答