Как добавить более одного компонента в содержимое MainFrame - PullRequest
1 голос
/ 13 мая 2011

Я хочу сделать окно с несколькими панелями.Я могу добавить один к содержимому MainFrame: import swing ._

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.

Как мне это сделать?Я пытался использовать контейнер, но я не знаю, как правильно его использовать.

1 Ответ

5 голосов
/ 13 мая 2011

MainFrame, как вы обнаружили, может содержать только одну вещь.

Следовательно, вам нужно поместить и parameters, и controls в некоторый контейнер, который предназначен для размещения нескольких других контейнеров.,Вы уже использовали FlowPanel для этого - вы можете сделать это снова.В качестве альтернативы, BoxPanel в направлении Orientation.Vertical, вероятно, больше, чем вы имели в виду.

Таким образом, вы добавляете другие контейнеры к этому BoxPanel, а затем устанавливаете BoxPanel как MainFrame 'с содержанием.

...