我在使用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,但不确定是怎么回事!
您应该在面板上添加包含按钮的列表,而不是按钮组本身,例如:
val radios = List(new RadioButton("One"), new RadioButton("two"))
layout += new BoxPanel(Orientation.Vertical) {
contents ++= radios
}
另请参见scala swing软件包本身中的this example。
虽然按钮组使按钮互斥,但是您仍然需要向面板添加单个按钮。您可以使用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)