两种方式相同。 这些方面有什么不同?
第一个语句中的使用了getContentPane()方法,它的目的是什么? 这是第二次发言的简写
JLabel lblNewLabel = new JLabel("New label");
getContentPane().add(lblNewLabel, BorderLayout.NORTH);
在这个An Object声明的contentPane中,然后设置Layout然后通过传递设置setContentPane的值,然后在不使用getContentPane()的情况下添加
contentPane = new JPanel();
contentPane.setLayout(new BorderLayout(0, 0));
setContentPane(contentPane);
JLabel lblNewLabel = new JLabel("Name");
contentPane.add(lblNewLabel, BorderLayout.NORTH);
Plz帮助我。这些线条使我感到困惑。
答案 0 :(得分:6)
两者之间没什么区别。第一个示例仅使用父窗口创建的默认内容窗格,其中第二个示例创建自己的内容窗格并直接使用引用。
你也可以使用......
Container contentPane = getContentPane();
JLabel lblNewLabel = new JLabel("Name");
contentPane.add(lblNewLabel, BorderLayout.NORTH);
请查看How to use Root Panes了解详情
我应该强调一个事实,默认情况下,JFrame
的内容窗格使用BorderLiayout
,这意味着您第一个示例不需要设置布局,但JPanel
使用FlowLayout
,因此它更改了布局管理器以确认JFrame
的预测...我想;)
答案 1 :(得分:0)
只需创建一个面板,然后在代码末尾将该组件添加到该面板
写下这个
getContentPane().add(yourPanel);