【问题标题】:What is a top-level window in java awt?java awt中的顶级窗口是什么?
【发布时间】:2017-03-06 12:50:12
【问题描述】:

我在 java 文档教程网站上找到了这一行 - “框架是带有标题和边框的顶级窗口”。这里,“顶级窗口”是什么意思?

【问题讨论】:

    标签: java window awt containers frame


    【解决方案1】:

    “顶级窗口”或“顶级容器”是可以在屏幕上显示而无需将其添加到另一个组件的东西。我们将使用顶级容器启动一个 GUI,然后将面板和组件添加到该 TLC。例如。顶级容器..

    另请参阅this answer,了解放弃 AWT 组件以支持 Swing 的许多充分理由。至于为 Java-FX 放弃 Swing,在 Java-FX 被提升为 Java API 的 Java 文档并使其成为官方 Java 教程之前,我不愿意这样做。 Sun,然后是 Oracle,有一个坏习惯,即大肆宣传许多技术,后来却悄悄地放弃对它们的支持和开发。

    【讨论】:

    • JavaFX 等价物将是 StageWindow(尽管似乎并非所有子类都是顶级窗口)。
    【解决方案2】:

    在 AWT 等 GUI 工具包中,顶级窗口是操作系统通常知道的窗口(重量级组件)。

    旁注:AWT(甚至 Swing)是一项相当古老的技术。我建议尽可能使用 JavaFX。

    【讨论】:

    • 这个定义的来源是什么。
    • @Daij-Djan 我没有具体的定义来源。但我只是查看了官方的 Java 教程和 Javadoc。他们有相似的看法:docs.oracle.com/javase/tutorial/uiswing/components/…
    • @Daij-Djan 例如JInternalFrame (Swing) 不是顶级容器。
    【解决方案3】:

    一个没有父窗口的窗口。

    一个窗口可以有子窗口,然后它们有一个父窗口

    【讨论】:

    • 例如对话框(通常有父级)也是顶级窗口
    • 好吧,我知道的所有工具包都不同,但我愿意让你受益于对 java 的怀疑;)
    • 在我看来这个定义仍然正确 :) 但似乎 java 似乎在说“只有由单独的本机窗口支持的窗口才是顶级的”
    【解决方案4】:

    观察这些类之间的差异。

    Frame 是顶级窗口,因为它有边框和标题。一个实例 框架可以有一个菜单栏。没有这些,它只是一个例子 java.awt.Window 类的。

    窗口类:它既没有边框也没有标题。 Window 类既不附加也不嵌入另一个容器中。

    对话框:它有边框和标题。如果没有 Frame 类的关联实例,则不能存在 Dialog 类的实例。

    面板:只是一个通用容器来保存组件。它的实例提供了一个可以添加组件的容器。

    注意:如果需要进一步说明,请回复我。

    【讨论】:

    • 和?装饰也没有定义..我可以有一个没有任何东西仍然是顶级的窗口
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-14
    • 2013-06-03
    • 2021-06-07
    • 2021-02-23
    • 1970-01-01
    • 2020-05-12
    • 2019-09-27
    相关资源
    最近更新 更多