小程序類的ScalaDoc對於如何實際覆蓋UI片和添加組件的細節很細。它說:「客戶應該實現UI領域。請參閱SimpleApplet演示爲例。」Scala小程序 - SimpleApplet演示
- 這個SimpleApplet演示在哪裏?
- 除此之外,有沒有人有一些簡單的使用Scala Applet類的源代碼,而不是直接使用JApplet類?
感謝
小程序類的ScalaDoc對於如何實際覆蓋UI片和添加組件的細節很細。它說:「客戶應該實現UI領域。請參閱SimpleApplet演示爲例。」Scala小程序 - SimpleApplet演示
感謝
的more recent ScalaDoc可能會稍有幫助(特別是ScalaDoc的新版本允許你顯示/隱藏混凝土構件,因此您可以專注於你必須實現什麼)。
應該指出的是,你不需要必須定義了一個名爲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 = {}
}
}
優秀的信息。謝謝 – I82Much 2010-08-03 18:49:36
一個小修正:'def'可以用'val'來覆蓋,但不能反過來。 – 2010-08-04 22:51:51
@Daniel - 當我「證明」你可以在解釋器中用'def'覆蓋'val'時,我感到驚訝。原來我忘記擴展定義val的特徵。 :)我很高興這實際上不可能! – 2010-08-04 23:59:48
最後發現了一些源,顯示你需要做什麼:
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需要一些嚴重的工作。
的[SimpleApplet演示是這裏](https://github.com/scala/scala/blob/master/docs/examples/swing/SimpleApplet.scala) – 2013-05-27 14:00:31
作爲擺動已經移動到一個不同的GitHub LOCAT該演示現在位於https://github.com/scala/scala-swing/blob/master/docs/examples/swing/SimpleApplet.scala – Suma 2014-12-10 12:49:00