在理解使用 JFrame 的 setRootPaneCheckingEnabled() 方法的原因方面需要帮助 class

Need help in understanding the reason for the use of the setRootPaneCheckingEnabled() method of the JFrame class

这更像是一个理论问题。我正在阅读 JFrame class 的文档,它有一个名为 setRootPaneCheckingEnabled() 的方法,其目的似乎是控制 add()setLayout() 调用的转发JFrame 的内容窗格。如果我们将 true 传递给这个方法,那么对 add()setLayout() 的调用将被转发,如果我们传递 false,这些调用将直接在 JFrame 上运行。

我不知道为什么有人会希望 add()setLayout() 调用直接在 JFrame 而不是它的内容窗格上操作。有人可以告诉我这些原因吗?

在1.5之前Java之前,你需要写frame.getContentPane().add(...)

看起来很简单,但经常这样做会变得非常非常乏味。

随着 1.5 的出现,他们添加了简单使用 frame.add(...) 并将这些呼叫转发到 contentPane 的功能。

这可能看起来不多,但它可能是 Swing 中最受质疑和要求的功能之一,真的。

这也是让新编码人员感到沮丧的一个重要来源,他们不明白 JFrame 实际上是一个复合组件,并且会浪费数小时试图弄清楚为什么没有任何效果。

此外,在过去,获得像样的 IDE 自动完成实际上是一件困难的事情,所以,是的,长手输入这些东西是......手腕的完全疼痛