为什么GUI窗口被称为“舞台”而不是“窗口”?
他们有共同点吗?
试图从这个网站了解: https://docs.oracle.com/javase/8/javafx/api/javafx/stage/Stage.html
感谢你的帮助,伙计们!
答案 0 :(得分:4)
这是一个metaphor。用户interface design或面向对象编程中使用了很多隐喻。桌面窗口不是真正的窗口,而是通过剪切视口查看内容的隐喻。类似地,计算机上的文件系统中的文件夹中的文件是将计算机系统与基于物理柜的文件归档系统等同的比喻。界面设计中经常使用的隐喻是Desktop metaphor。
这里使用的特定比喻被称为“戏剧隐喻”。剧院的比喻已经有一段时间了。例如,这里是a description of a 1984 Smalltalk based system called rehearsal,由施乐公园的科学家开发。基于这种想法的原始系统更广泛地使用了这个比喻。例如,有一个Stage,我们通常将其视为今天的Window和舞台上的Performers,我们将其视为场景图中的控件或节点,以及给予表演者的Cues,我们将其视为发送到场景图中节点的消息或方法调用。
用于这些系统的软件的目标开发人员是非专业开发人员,例如教师,在这个世界中,计算机的图形用户界面并未广泛传播。因此,开发这些隐喻是为了帮助目标开发人员将交互式多媒体系统的各个方面与他们在“现实世界”中可能理解的内容联系起来。
这些东西的谱系大致是这些系统是在Parc开发的,作为学习研究小组的一部分,用于构建基于图形的教育软件。一些想法被推广到Macromedia,它基于他们的学习工具,如Director在剧院或电影隐喻上,使用场景和舞台等想法,并在他们的自定义语言中添加动画的时间轴和关键帧等其他想法名叫林戈。 Macromedia创建Flash时使用了相同的想法,stage是当今Flash API的一个组件。然后,早期的JavaFX团队在开发JavaFX脚本语言时使用了相同的概念,可能是因为它非常像flash,并且这些隐喻在Flash开发人员中取得了一些成功。基于JavaFX 2 Java的JavaFX版本保留了在JavaFX 1 FXScript中使用的隐喻名称Stage和Scene。
在不同的系统中保持相同的比喻可以帮助开发人员在技术之间进行转换,因为它们可以与之前学到的概念相关联。
JavaFX系统是一种混合的比喻,包括来自桌面隐喻的Windows和来自剧院隐喻的阶段,其中阶段从窗口继承。它只是非常宽松地基于剧院的比喻,只有阶段和场景是这个比喻中幸存的名字。
此StackOverflow答案描述了one way to think about applying the theater metaphor in JavaFX。
答案 1 :(得分:3)
Stage
在inheritance进程后延伸Window
。 Stage
是一种特定类型的Window
,包含一些共享方法和参数。想到,Stage
得到了Window
没有的事情。
作为Window
Javadoc explains it,托管场景的顶级窗口,用户与之交互。窗口可能是舞台,PopupWindow或其他顶级关卡。窗口也用于基于浏览器插件的部署。
您可以比较两者,并考虑父子关系。