如何在Scala Swing BorderPanel上获取特定位置的子组件?我可以放置组件OK。在这种特殊情况下,我想检查BorderPanel.Position.Centre中的组件。我也是对的,每个位置只能有一个子组件或null:North,East等?
答案 0 :(得分:2)
嗯,layout
是从组件到位置的映射,因此以下工作(不确定是否有更简单的方法):
import scala.swing.SimpleSwingApplication
import scala.swing.MainFrame
import scala.swing.BorderPanel
import scala.swing.Label
object BorderLayoutTest extends SimpleSwingApplication {
def top = new MainFrame {
contents = new BorderPanel {
val label = new Label("hi")
import BorderPanel.Position._
layout(label) = Center
println("North: " + layout.find(_._2 == North)) //None
println("Center: "+ layout.find(_._2 == Center)) //Some( ... )
}
}
}