我想从内部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);
}
}
答案 0 :(得分:1)
您必须在validate();
之后调用getContentPane().add(...);
方法。
validate方法用于使容器布局 子组件再次。它应该在这个容器时调用 子组件被修改(添加到容器或从容器中删除,或 在容器出现之后,布局相关信息已经改变 显示。