getContentPane().add(childcomponent)与setContentPane(pane) 与 组件、容器、布局管理器

展开阅读全文

setContentPane() 和getContentPane().add()的区别?

07-20

花了一天,发现了一个怪现象,两个及其简单的界面程序一个用了setContentPane(),另一个用了getContentPane().add(),后者能显示,但前者显示不出来:rn程序一:rnpublic class MyFrame extends JFrame rn private JPanel myPanel = null;rnrn public static void main(String[] args) rn MyFrame myFrame = new MyFrame();rn myFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);rn myFrame.setVisible(true);rn rnrn public MyFrame() rn super();rn initialize();rn rnrn private void initialize() rn this.setSize(300, 200);rn myPanel = new JPanel();rn myPanel.add(new Button());rn this.getContentPane().add(myPanel);rn this.setTitle("JFrame");rn this.getContentPane().removeAll();rn this.getContentPane().add(myPanel);rn rnrnrn程序二:rnpublic class MyFrame extends JFrame rn private JPanel myPanel = null;rnrn public static void main(String[] args) rn MyFrame myFrame = new MyFrame();rn myFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);rn myFrame.setVisible(true);rn rnrn public MyFrame() rn super();rn initialize();rn rnrn private void initialize() rn this.setSize(300, 200);rn myPanel = new JPanel();rn myPanel.add(new Button());rn this.setContentPane(myPanel);rn this.setTitle("JFrame");rn this.getContentPane().removeAll();rn this.setContentPane(myPanel);rn rnrn觉得很奇怪,为什么会有这样的不同?按理说当我把所有component去掉后再加入都是一样的显示的啊 论坛

没有更多推荐了,返回首页