Binding Groovy SwingBuilder绑定到多个属性

Binding Groovy SwingBuilder绑定到多个属性,binding,groovy,swingbuilder,Binding,Groovy,Swingbuilder,有没有办法使用SwingBuilder将一个属性绑定到另一个对象的多个属性?例如,我想将按钮的enabled属性绑定到两个文本字段-只有当两个文本字段均为非空时,按钮才会启用。您可以执行以下操作: import groovy.beans.Bindable import groovy.swing.SwingBuilder import javax.swing.WindowConstants as WC class CombinedModel { @Bindable String text1

有没有办法使用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
都非空,则按钮为true!但是在Groovy中,您在哪里可以找到这些东西呢?有博客吗?@ant我在(狮鹫的创造者)上找到了一些代码,这些代码帮助我解决了如何做到这一点:-)