scala event swing ::鸡肉或鸡蛋

cou*_*ech 5 events swing scala

我怎样才能处理一个情况,一个字段听取了尚未声明的按钮?

  val detail = new BoxPanel(Orientation.Vertical){
    listenTo(button)
  }
  val seznam = new BoxPanel(Orientation.Vertical){
    val button = new Button("But"){
      reactions += {
        case ButtonClicked(_) =>
          detail.contents.clear
          detail.contents += new Label("Anystring")
    }
  }
Run Code Online (Sandbox Code Playgroud)

我也不能seznam先声明,因为它引用了该字段detail.那我该怎么写呢?

Rex*_*err 3

listenTo是一个公共方法。因此,最简单的方法是按照上面所示创建它们,但detail.listenTo(button)在创建按钮后添加:

val detail = new BoxPanel(Orientation.Vertical){ }
val seznam:BoxPanel = new BoxPanel(Orientation.Vertical){
  val button = new Button("But"){
    reactions += {
      case ButtonClicked(_) =>
        detail.contents.clear
        detail.contents += new Label("Anystring")
    }
  }
  detail.listenTo(button)
}
Run Code Online (Sandbox Code Playgroud)