2010-03-22 2 views
5

신고 된 버튼이 아직 신고되지 않은 상황을 어떻게 처리 할 수 ​​있습니까? 이 분야 detail을 참조하기 때문에스칼라 이벤트 스윙 :: 닭고기 또는 달걀

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") 
    } 
    } 

나는 중 처음 seznam를 선언 할 수 없습니다. 그러면 어떻게 쓸 수 있습니까?

+2

하나 또는 두 필드 앞에'게으른 val'을보십시오. – retronym

+0

+1 흥미로운 제목 :-) – missingfaktor

+1

나는 모든 발값을 편집했다 :'% s/val/lazy val/g' 그리고 나는 여전히'not found' 에러가 난다. – coubeatczech

답변

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) 
} 
관련 문제