出现这个问题是因为我想从LostFocusEvent
抓取Dialog
。不幸的是,非Component
派生组件不会触发此事件。我想问的是Dialog
与Swing库相比,RichWindow
不是从Component派生的,而是{{1}}的目标是什么?
答案 0 :(得分:1)
我认为获得答案的最佳方法是直接联系Ingo Maier,但您可以从他的博客文章The scala.swing package in 2.8 and beyond中推断出一些背后的想法:
窗口层次结构
这就是Java AWT / Swing窗口层次结构的样子:
虽然AWT的
Frame
和Dialog
共享公共基类Window
,但Swing扩展没有子类关系或扩展公共接口,即使它们共享AWT中不存在的常用功能。为了使事情变得简单,我们在scala.swing中重新设计了窗口基础层次结构,现在看起来如下:
[...]
这种设计允许我们将常见的包装器代码分解为类
RichWindow
。
所以我猜这是作者的故意设计,说明Windows实际上不是组件,就像框架和按钮一样,并且可以放到其他容器上。< / p>