微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Groovy SwingBuilder绑定到多个属性

如何解决Groovy SwingBuilder绑定到多个属性

| 有没有一种方法可以使用SwingBuilder将一个属性绑定到另一个对象的多个属性?例如,我想将一个按钮的enabled属性绑定到两个文本字段-仅当两个文本字段都不为空时才启用该按钮。     

解决方法

        您可以执行以下操作:
import groovy.beans.Bindable
import groovy.swing.SwingBuilder
import javax.swing.WindowConstants as WC

class CombinedModel {
  @Bindable String text1
  @Bindable String text2
}

def model = new CombinedModel()

SwingBuilder.build() {
    frame(title:\'Multiple Bind Test\',pack:true,visible: true,defaultCloseOperation:WC.EXIT_ON_CLOSE ) {
        gridLayout(cols: 2,rows: 0)

        label \'Input text 1: \'
        textField( columns:10,id:\'fielda\' )

        label \'Input text 2: \'
        textField( columns:10,id:\'fieldb\' )

        // Bind our two textFields to our model
        bean( model,text1: bind{ fielda.text } )
        bean( model,text2: bind{ fieldb.text } )

        label \'Button: \'
        button( text:\'Button\',enabled: bind { model.text1 && model.text2 } )
    }
}
如您所见,它将两个文本字段绑定到我们模型中的字段,然后如果
text1
text2
均为非空,则将
enabled
绑定为true     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。