1

Scalaで作成されたGUI iveがあります。非常に単純ですが、DSLGUI の外部から DSLOutput オブジェクトを変更したいと思います。DSLGUI の外部から DSLOutput.append() を呼び出す方法を知っている人はいますか? DSLGUI をインポートしようとしましたが、DSLOutput にアクセスする方法がわかりません。

package api
import swing._
import event._

object DSLGUI extends SimpleSwingApplication{

  def top = new MainFrame{
    title = "Computer Repair Advisory System"
    object Commands extends TextField(columns = 50)
    object DSLOutput extends TextArea(rows = 15, columns = 50)
    object SendCommand extends Button("Send")
    val CommandPanel = new FlowPanel{
      contents += Commands
      contents += SendCommand
    }
    contents = new BoxPanel(Orientation.Vertical){
        contents +=CommandPanel
        contents += DSLOutput
    }
    listenTo(SendCommand)
    reactions += {
      case ButtonClicked(SendCommand) =>
        DSLOutput append "Test "


    }
  }

}
4

1 に答える 1

1

DSLGUIメソッド内のローカル オブジェクトとしてではなく、 のスコープで宣言する必要がありますtop。その後、 でアクセスできますDSLGUI.DSLOutput

すなわち

object DSLGUI extends SimpleSwingApplication {

  object DSLOutput extends TextArea(rows = 15, columns = 50)

  def top = new MainFrame {
    ...
  }
}
于 2012-04-21T18:36:51.187 に答える