如何在包含RadioButton的Scala中创建新的ButtonGroup?

问题描述 投票:3回答:2

我在使用Scala编程语言创建包含单选按钮的ButtonGroup时遇到麻烦。我使用的代码如下:

val buttongroup = new ButtonGroup {
  buttons += new RadioButton("One")
  buttons += new RadioButton("Two")
}

并且我用于显示按钮组的代码在BorderPanel中:

layout += new BoxPanel(Orientation.Vertical) {
  buttongroup
} -> BorderPanel.Position.West

但是,什么都没有显示...我已经查询了API,但不确定是怎么回事!

scala radio-button scala-collections buttongroup
2个回答
2
投票

您应该在面板上添加包含按钮的列表,而不是按钮组本身,例如:


val radios = List(new RadioButton("One"), new RadioButton("two"))
layout += new BoxPanel(Orientation.Vertical) {
  contents ++= radios         
}

另请参见scala swing软件包本身中的this example


0
投票

虽然按钮组使按钮互斥,但是您仍然需要向面板添加单个按钮。您可以使用ButtonGroup.buttons获取按钮列表:

layout += new BoxPanel(Orientation.Vertical) {
  val buttongroup = new ButtonGroup {
    buttons += new RadioButton("One")
    buttons += new RadioButton("Two")
  }
  contents ++= buttongroup.buttons
} -> BorderPanel.Position.West

如果要在创建工具栏时选择第一个按钮,则可以添加:

buttongroup.select(buttongroup.buttons.head)

© www.soinside.com 2019 - 2024. All rights reserved.