更改时自动更新Button文本

时间:2013-11-04 14:53:33

标签: scala scala-swing

我正在学习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发生变化时,按钮的显示文本会自动更改。

非常感谢您的见解:)

1 个答案:

答案 0 :(得分:1)

将字符串设为私有,并编写将按钮文本更改为副作用的getter / setter。

您需要提供按钮名称,而不是像上面那样使用匿名实例。