applet类的ScalaDoc在关于如何实际覆盖ui片段和添加组件的细节上非常细致。它说“客户端应该实现ui字段。请参阅SimpleApplet演示以获取示例。”
由于
答案 0 :(得分:4)
最后找到了一些显示您需要做的事情的来源:
http://scala-forum.org/read.php?4,701,701
import swing._
import java.awt.Color
class MainApplet extends Applet {
object ui extends UI {
val mainPanel = new BoxPanel(Orientation.Vertical) {
// different sort of swing components
contents.append(new Button("HI"))
}
mainPanel.background = Color.WHITE
contents = mainPanel
def init():Unit = {}
}
}
换句话说,您定义了一个名为ui的对象,它扩展了UI。我从来没有想过这一点。 ScalaDoc需要一些认真的工作。
答案 1 :(得分:4)
more recent ScalaDoc可能稍微有点帮助(特别是,新版本的ScalaDoc允许您显示/隐藏具体成员,以便您可以专注于必须实施的内容)。< / p>
应该注意的是,不必定义一个扩展UI的名为ui的对象。 ScalaDoc所说的更准确,更灵活 - “实现ui领域”。由于Uniform Access Principle,您可以自由地将ui字段实现为val
或object
(类似地,您可以使用val
或var
实现def
)。唯一的约束(在ScalaDoc中反映为val ui : UI
)是
例如:
class MainApplet extends Applet {
val ui = new MainUI(Color.WHITE)
class MainUI(backgroundColor: Color) extends UI {
val mainPanel = new BoxPanel(Orientation.Vertical) {
// different sort of swing components
contents.append(new Button("HI"))
}
mainPanel.background = backgroundColor // no need for ugly _=
contents = mainPanel
def init(): Unit = {}
}
}