2

Scala で標準の Swing ウィジェットを使用して GUI を作成する方法を学んでいます。これが私がやりたいことです:

ここに画像の説明を入力

コンポーネントの作成には成功しましたが、配置に失敗しまし。私のすべてのコンポーネントは、私が望むものとは異なり、中央に配置されています (左側のボタン 1、中央のテーブル、右側のボタン 2)。Scala の Swing に関する情報もあまり見つかりません。検索結果のほとんどは Java に関するものです (私は何も知りません)。アライメントを強制するにはどうすればよいですか?

コードは次のとおりです。

ontents += new BoxPanel(Orientation.Vertical) {
    contents += new Button("Button 1")
    contents += new Table(3, 3)
    contents += new Button("Button 2")
}

結果:

ここに画像の説明を入力

前にありがとう。

4

1 に答える 1

4

私は通常、ほとんどの作業を非常に簡単にする独自のレイアウト ヘルパー (VBox と HBox) を使用します。ただし、次のコードは、標準ライブラリのみを使用して目的を達成します (コンポーネント間にいくつかの境界線とスペースを追加する自由もありました)。

import swing._
import Swing._
import java.awt.Color

new MainFrame {
  val button1 = new Button("Button 1")
  val button2 = new Button("Button 2")
  val table = new Table(4,3) {
    border = LineBorder(Color.BLACK)
  }
  contents = new BoxPanel(Orientation.Vertical) {
    border = EmptyBorder(10)
    contents += new BorderPanel {
      add(button1, BorderPanel.Position.West)
    }
    contents += VStrut(10)
    contents += table
    contents += VStrut(10)
    contents += new BorderPanel {
      add(button2, BorderPanel.Position.East)
    }
  }
  visible = true
}

(上記をファイルに貼り付けて実行するだけで動作scala file.scalaします)

于 2012-11-15T16:47:51.053 に答える