Scala Swing:如何从子面板中获取子组件

时间:2012-09-17 16:40:37

标签: scala scala-swing

如何在Scala Swing BorderPanel上获取特定位置的子组件?我可以放置组件OK。在这种特殊情况下,我想检查BorderPanel.Position.Centre中的组件。我也是对的,每个位置只能有一个子组件或null:North,East等?

1 个答案:

答案 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( ... )
    } 
  }  
}