gpt4 book ai didi

Java Swing ContentPane 令人困惑的语句

转载 作者:行者123 更新时间:2023-12-01 08:06:58 24 4
gpt4 key购买 nike

同样的事情有两种方式。这些行有什么不同?

第1条语句中使用了 getContentPane() 方法,它的目的是什么?这是第二个陈述的简写

JLabel lblNewLabel = new JLabel("New label");
getContentPane().add(lblNewLabel, BorderLayout.NORTH);

在此 An Object 中声明 contentPane 并设置布局后,然后通过传递设置 setContentPane 的值,然后添加而不使用 getContentPane()

contentPane = new JPanel();             
contentPane.setLayout(new BorderLayout(0, 0));
setContentPane(contentPane);

JLabel lblNewLabel = new JLabel("Name");
contentPane.add(lblNewLabel, BorderLayout.NORTH);

请帮助我。这些行让我感到困惑。

最佳答案

两者差别不大。第一个示例仅使用父窗口创建的默认内容 Pane ,第二个示例创建自己的内容 Pane 并直接使用引用。

您还可以使用...

Container contentPane = getContentPane();

JLabel lblNewLabel = new JLabel("Name");
contentPane.add(lblNewLabel, BorderLayout.NORTH);

看看How to use Root Panes了解更多详情

我应该强调这样一个事实:默认情况下,JFrame 的内容 Pane 使用 BorderLiayout,这意味着您的第一个示例不需要设置布局,但是JPanel 使用 FlowLayout,因此它更改了布局管理器以确认 JFrame 的期望...我猜;)

关于Java Swing ContentPane 令人困惑的语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20811873/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com