1
有沒有辦法使用SwingBuilder將屬性綁定到另一個對象的多個屬性?例如,我想將一個按鈕的啓用屬性綁定到兩個文本字段 - 該按鈕僅在兩個文本字段均爲非空時才啓用。Groovy SwingBuilder綁定到多個屬性
有沒有辦法使用SwingBuilder將屬性綁定到另一個對象的多個屬性?例如,我想將一個按鈕的啓用屬性綁定到兩個文本字段 - 該按鈕僅在兩個文本字段均爲非空時才啓用。Groovy SwingBuilder綁定到多個屬性
你可以做這樣的事情:
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 })
}
}
正如你所看到的,結合2個文本框在我們的模型中字段,然後結合enabled
的按鈕是真實的,如果兩個text1
和text2
是非 - 空
謝謝,這個例子真的很有幫助 – 2011-06-15 01:02:07
+1的答案!但是你在Groovy中發現了哪些類型的東西?任何博客? – 2011-06-15 03:05:38
@ant我在[Andres Almiray的博客](http://jroller.com/aalmiray/entry/swingbuilder_s_binding_revisited)(Griffon的創建者)發現了一些代碼,它幫助我解決了如何做到這一點:-) – 2011-06-15 08:01:16