【问题标题】:A Stage or a Window?舞台还是窗户?
【发布时间】:2015-12-02 19:54:00
【问题描述】:

为什么 GUI 窗口被称为“舞台”而不是“窗口”?

他们有什么共同点吗?

试图从这个网站了解: https://docs.oracle.com/javase/8/javafx/api/javafx/stage/Stage.html

感谢您的帮助,伙计们!

【问题讨论】:

    标签: java


    【解决方案1】:

    这是一个metaphor。用户interface design 或面向对象编程中使用了很多隐喻。桌面窗口不是一个真正的窗口,而是一个隐喻,用于通过裁剪的视口查看某物。类似地,计算机上文件系统中文件夹中的文件是一种隐喻,将计算机系统等同于基于物理机柜的文件归档系统。界面设计中经常使用的一个比喻是Desktop metaphor

    这里使用的特殊隐喻被称为“剧院隐喻”。剧院隐喻已经存在了一段时间。例如,这里是a description of a 1984 Smalltalk based system called rehearsal,它是由 Xerox Parc 的科学家开发的。基于这个想法的原始系统更广泛地使用了这个隐喻。例如,有一个舞台,我们今天通常认为它是一个窗口,舞台上的表演者,我们会认为它是场景图中的控件或节点,还有给表演者的提示,我们会​​认为它是发送到场景图中节点的消息或方法调用。

    这些系统软件的目标开发人员是非专业开发人员,例如教师,在计算机图形用户界面尚未普及的世界中。因此,开发这些隐喻是为了帮助目标开发人员将交互式多媒体系统的各个方面与他们在“现实世界”中可能理解的事物联系起来。

    这些东西的起源大致是,这些系统是在 Parc 作为学习研究小组的一部分开发的,用于构建基于图形的教育软件。一些想法被带到了 Macromedia 中,Macromedia 将他们的学习工具(如 Director)基于剧院或电影隐喻,使用场景和舞台等想法,并在其名为 Lingo 的自定义语言中添加额外的想法,如动画的时间线和关键帧. Macromedia 创建 Flash 时使用了相同的想法,stage 是当今 Flash API 的一个组件。然后,早期的 JavaFX 团队在开发 JavaFX 脚本语言时使用了相同的概念,可能是因为它非常类似于 Flash,并且隐喻已经为 Flash 开发人员带来了一些成功。 JavaFX 2 基于 Java 的 JavaFX 版本保留了 JavaFX 1 FXScript 中使用的隐喻名称 Stage 和 Scene。

    在不同的系统中保持相同的比喻可以帮助开发人员在技术之间进行转换,因为它们可以与之前学到的概念相关。

    JavaFX 系统是一种混合隐喻,既有桌面隐喻中的 Windows,又有剧院隐喻中的 Stages,其中 Stages 继承自 Windows。它只是非常松散地基于剧院隐喻,只有舞台和场景是该隐喻中幸存的名称。

    这个 StackOverflow 答案描述了one way to think about applying the theater metaphor in JavaFX

    【讨论】:

    • 太糟糕的官方文档有时会省略像这样的历史解释。这对理解有很大帮助:我记得开始学习编程时,在一些技术术语面前完全心烦意乱,比如why a method is not called a function,等等。总是有原因的。非常博学的答案@jewelsea :)
    【解决方案2】:

    Stage 扩展Window,遵循inheritance 过程。 StageWindow 的一种特定类型,具有一些共享方法和参数。想一想,Stage 得到了 Window 没有的东西。

    作为Window Javadoc explains it一个顶级窗口,其中承载了一个场景,并且用户与之交互。 Window 可能是 Stage、PopupWindow 或其他此类顶级。 Window 也用于基于浏览器插件的部署

    您可以比较它们,考虑父子关系。

    【讨论】:

      猜你喜欢
      • 2014-12-29
      • 1970-01-01
      • 1970-01-01
      • 2013-11-30
      • 2012-11-22
      • 2019-08-05
      • 2012-10-12
      • 2014-09-25
      • 2014-07-25
      相关资源
      最近更新 更多