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 回答