首页 文章 Ruby Groovy高效编程——@Bindable的使用

邮件订阅

Groovy高效编程——@Bindable的使用 E-mail
用户评价: / 0
好 
作者:山风小子   
2008-05-04 01:01
在Groovy 1.6.0 BETA 1中引入了@Bindable这一新的Annotation,该Annotation在Swing编程中使用起来尤为方便,下面给出一个实例供大家参考。其内部的实现原理应该是基于Observer模式的。

点击‘update’按钮,随机更新label的值。请注意,我们仅仅设置了myBean的属性prop的值,未对label进行任何的显式操作(比如setText)

import?groovy.beans.Bindable
import?groovy.swing.*
import?javax.swing.*
import?java.awt.*

class?MyBean?{
????@Bindable?
????String?prop
}

def?rand?
=?new?Random()
def?greetings?
=?['hello,?world',?'hello,?Groovy',?'hello,?山风小子']
def?myBean?
=?new?MyBean(prop:greetings[2])
def?swing?
=?new?SwingBuilder()
def?frame?
=?swing.frame(title:'Bindable?Demo',?location:?[100,?100],?size:[300,?100])?{
????panel(layout:?
new?GridLayout(1,?2))?{
????????label(text:bind(source:myBean,?sourceProperty:
'prop'))
????????button(action(name:
'update',?closure:?{myBean.prop?=?greetings[rand.nextInt(3)]}))
????}
}

frame.setVisible(
true)


附:朝花夕拾——Groovy & Grails
最后更新于: 2008-05-04 01:01
 

欢迎转载

本站文章欢迎转载,但请注明出处(http://www.javajia.com,Java家)