다음 스칼라 코드에서 foreground, horizontalAlignment 및 background를 일부 값으로 변경합니다. 그러나 GUI에서는 이러한 속성이 표시되지 않습니다.스칼라 스윙 요소의 속성
horizontalAlignment는 가운데에 유지됩니다. backgrould는 회색으로 유지됩니다. 그러나 전경 (글꼴 색)은 값에 따라 변경됩니다. 원하는 효과를 얻으려면 어떻게해야합니까?
도움 주셔서 감사합니다.
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 setting opaque = true는 을 돕고 preferredSize를 Dimension으로 설정 한 후 레이블이 정렬되었음을 알았습니다. 그리고 GridBagLayout이 가장 쉬운 레이아웃 관리자가 아니라는 데 동의합니다. – HoWei
다행입니다. 질문이 해결되면 답변을 확인하여 표시해야합니다. –