Java JFrame类中的getcontentpane方法
Java JFrame类中的getcontentpane方法,java,Java,JFrame类中的getContentPane方法有什么用途?我用谷歌搜索了一下,但找不到合适的答案 class MainFrame extends JFrame { public MainFrame(String title) { super(title); // Set layout manager setLayout(new BorderLayout()); // Create Swing component
JFrame类中的getContentPane
方法有什么用途?我用谷歌搜索了一下,但找不到合适的答案
class MainFrame extends JFrame {
public MainFrame(String title) {
super(title);
// Set layout manager
setLayout(new BorderLayout());
// Create Swing component
JTextArea textArea = new JTextArea();
JButton button = new JButton("Click me!");
// Add Swing components to content pane
Container c = getContentPane();
c.add(textArea, BorderLayout.CENTER);
c.add(button, BorderLayout.SOUTH);
JButton button1 = new JButton("Click me again!");
add(button1,BorderLayout.NORTH);
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
textArea.append("Hello\n");
}
});
button1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
textArea.append("Hello\n");
}
});
}
}
容器中有几层。可以将一层视为覆盖在容器上的透明薄膜。在JavaSwing中,用于保存对象的层称为内容窗格。对象将添加到容器的内容窗格层
getContentPane()方法检索内容窗格层,以便向其中添加对象
内容窗格是由Java运行时环境创建的对象。您不必知道内容窗格的名称即可使用它
getContentPane()
返回用于保存对象的容器。您可以在返回的容器上添加对象,而不是直接将对象添加到JFrame或JDialog
JFrame类中getcontentpane方法的用途是什么
在这种情况下,没有。由于Java1.5add
自动将组件添加到ContentPane
so
c.add(textArea, BorderLayout.CENTER);
可以写成
add(textArea, BorderLayout.CENTER); // can drop BorderLayout.CENTER obviously
类似于处理按钮1
的方式
在某些情况下,获取ContentPane
仍然很有用,例如
setLayout(new BoxLayout(getContentPane(), BoxLayout.PAGE_AXIS));
getVontetPane()将返回框架的contentpane。
Contentpane就像是一个添加所有组件的地方。我不明白。当我们通过框架中的容器或没有容器添加按钮时,我们得到的结果是相同的。为什么?编辑了答案。希望您能理解。因为它返回了JFrame的默认内容窗格,它遵循边框布局。您可以将一个像JPanel这样的容器添加到框架中,然后将对象添加到框架中。添加到由getContentPane
返回的容器与直接添加到JFrame中是一样的。那么为什么我们有这样的方法?它的用途是什么。请给我举个适当的例子。