0
在下面的scala代码中,我将前景,horizontalAlignment和背景更改为某些值。但是在GUI中,这些属性不显示。scala swing元素的属性
horizontalAlignment保持居中。 背景保持灰色。 但是,前景(字体颜色)根据值更改。 如何获得所需的效果?
感谢您的帮助!
import scala.swing._
object GuiTest extends SimpleSwingApplication {
def top = new MainFrame {
title = "Label Test"
val tempList = List("Celsius", "Fahrenheit", "Kelvin")
contents = bagPnl(tempList)
val fields = contents(0).peer.getComponents
val valuefields
= for (f <- 0 until fields.length/2)
yield tempList(f) -> fields.apply(2 * f + 1).asInstanceOf[javax.swing.JLabel]
val tfm = valuefields.toMap[String, javax.swing.JLabel]
tfm.apply("Celsius").setText("35°C")
tfm.apply("Kelvin").setText("0 K")
}
def bagPnl(list: List[String]) = new GridBagPanel {
val gbc = new Constraints
gbc.insets = new Insets(3, 3, 3, 3)
var l = 0
for (title <- list) {
gbc.gridy = l
gbc.gridx = 0
/* title label */
add(new Label {
horizontalAlignment = Alignment.Left
foreground = java.awt.Color.RED
background = java.awt.Color.CYAN
text = title
}, gbc)
gbc.gridx = 1
/* value label */
val t = new Label {
horizontalAlignment = Alignment.Right
foreground = java.awt.Color.BLUE
background = java.awt.Color.YELLOW
name = title
}
t.background = java.awt.Color.GREEN
add(t, gbc)
l = l + 1
}
}
}
抱歉,我不能发表图片尚未:-(
谢谢您的回答! yes设置opaque = true有助于 ,并且在将preferredSize设置为Dimension之后,我发现了标签对齐。 我同意GridBagLayout不是最简单的布局管理器。 – HoWei 2014-11-03 20:52:48
很好用。如果你的问题解决了,你应该通过检查答案来标记它。 – 2014-11-03 21:28:42