从内部Action类调用外部类'方法getContentPane()
问题描述:
我想从内部Action类调用外部类方法getContentPane()。我不明白为什么我的代码不起作用。从内部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);
}
}
答
必须getContentPane().add(...);
后调用validate();
方法。
验证方法用于使容器再次布局其子组件 。当容器的 子容器已被 显示后,应修改此容器的 子组件(添加到容器或从容器中移除,或者 已更改布局相关信息)。
+0
谢谢。有用。 – Dmitry 2012-04-04 11:18:54
你可以扩大“不工作”? – Qwerky 2012-04-04 11:05:34