在理解使用 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 自动完成实际上是一件困难的事情,所以,是的,长手输入这些东西是......手腕的完全疼痛
这更像是一个理论问题。我正在阅读 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 自动完成实际上是一件困难的事情,所以,是的,长手输入这些东西是......手腕的完全疼痛