0

我目前正在学习 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)
  }

这些“文本”变量会在加密/解密过程中通过各种方法经常更改,但是当它们发生更改时,按钮上显示的文本不会。

我想知道一种方法,使按钮的显示文本在包含该文本的 var 发生更改时自动更改。

非常感谢您的洞察力:)

4

1 回答 1

1

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

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

于 2013-11-04T15:53:58.900 回答