2013-11-04 22 views
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保存该文本更改。

非常感谢你的洞察力:)

回答

1

使琴弦私人和编写的getter /是改变按钮文本的副作用制定者。

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

+0

为什么我在考虑观察员/听众之前没有考虑这个问题......谢谢:) – Viria