我正在学习scala,并使用基本的scala swing UI制作加密程序。 我添加了2个摆动按钮,文本由2 var。
保存代码如下所示:
var encText = "Encrypt"
var decText = "Decrypt"
def top = new MainFrame {
title = "Data Guardian"
minimumSize = new Dimension(500, 200)
contents = new GridPanel(2, 2) {
hGap = 3; vGap = 3
contents += new Button {
text = encText
reactions += {
case ButtonClicked(_) => Main.startEnc
}
}
contents += new Button {
text = decText
reactions += {
case ButtonClicked(_) => Main.startDec
}
}
}
size = new Dimension(150, 40)
}
这些“text”var将在加密/解密过程中通过各种方法经常更改,但是当它们发生更改时,按钮上显示的文本不会更改。
我想知道一种方法,当保存该文本的var发生变化时,按钮的显示文本会自动更改。
非常感谢您的见解:)
答案 0 :(得分:1)
将字符串设为私有,并编写将按钮文本更改为副作用的getter / setter。
您需要提供按钮名称,而不是像上面那样使用匿名实例。