Frame
具体的に言うと、追加できるアイテムは1つだけなので、メソッドを使用します
def contents_= (c: Component) : Unit
そしてあなたは良いはずです。これを REPL で試してください (何が起こっているかを確認できるように、一度に 1 行ずつ):
import scala.swing._
val f = new Frame { contents = new Label("Hi") }
f.visible = true
f.contents = new Label("Hey there")
のように複数のアイテムを持つことを意図したものを使用している場合BoxPanel
、contents
は であるBuffer
ため、それに追加したり削除したりできます。
val bp = new BoxPanel(Orientation.Vertical)
val (label1,label2) = (new Label("Hi"), new Label("there"))
bp.contents += label1
bp.contents += label2
f.contents = bp // Now you see "Hi" "there" stacked
bp.contents -= label1
f.pack // "Hi" disappears--need pack not repaint to fix layout
bp.contents += label1
f.pack // "Hi" is back, but at the end
Component
拡張しているa のようなものがある場合はcontents
、バッファーでオーバーライドするか、他の方法で変更する (またはSequentialContainer
J-16 が言ったように継承する) のがあなたの仕事です。