如何向MainFrame内容添加多个组件

时间:2011-05-13 02:21:03

标签: swing scala

我想制作几个面板的窗口。我可以将一个附加到MainFrame的内容: 进口摆动._

class View(model:Model) extends MainFrame {
  title = "app"

  val parameters = new FlowPanel() {
    contents += new Label("Tempo: ")
    contents += new ComboBox(Seq("80", "100", "120", "140"))
    contents += new Label("Metric: ")
    contents += new Label("Note: ")
  }

  contents = parameters
}

但是当我试图追加另一个时:

    class View(model:Model) extends MainFrame {
      title = "app"

      val parameters = new FlowPanel() {
        contents += new Label("Tempo: ")
        contents += new ComboBox(Seq("80", "100", "120", "140"))
        contents += new Label("Metric: ")
        contents += new Label("Note: ")
      }

      val controls = new FlowPanel() {
        contents += new Button( "klop" ) 
      }

      contents = parameters
      contents += controls
    }

它不起作用:

src/View.scala:40: error: type mismatch;
 found   : scala.swing.FlowPanel
 required: String
  contents += controls
              ^
one error found
Error: Build failed.

我该怎么做?我尝试使用Container,但我不知道如何正确使用它。

1 个答案:

答案 0 :(得分:5)

正如您所发现的,

MainFrame只能包含一件事。

因此,您需要将parameterscontrols放入一个旨在布置多个其他容器的容器中。您已经使用了FlowPanel - 您可以再次使用BoxPanel。或者,方向Orientation.Vertical中的BoxPanel可能更符合您的想法。

因此,您将其他容器添加到BoxPanel,然后将MainFrame设置为{{1}}的内容。