closurelistenertest.groovy

来自「Groovy动态语言 运行在JVM中的动态语言 可以方便的处理业务逻辑变化大的业」· GROOVY 代码 · 共 44 行

GROOVY
44
字号
import javax.swing.JButton
import java.util.Arrays

/**
 * @version $Revision: 2129 $
 */
class ClosureListenerTest extends GroovyTestCase {
     
    void testAddingAndRemovingAClosureListener() {
        def value = System.getProperty('java.awt.headless')
        println("Value of java.awt.headless = ${value}")
        
        def b = new JButton("foo")
        b.actionPerformed = { println("Found ${it}") }

        def size = b.actionListeners.size()
        assert size == 1
        
        def l = b.actionListeners[0]
		def code = l.hashCode()
        
        println("listener: ${l} with hashCode code ${code}")
        
        assert l.toString() != "null"
        
        assert l.equals(b) == false
        assert l.equals(l)
        
        assert l.hashCode() != 0
        
        b.removeActionListener(l)
        
        println(b.actionListeners)
        
        size = b.actionListeners.size()
        assert size == 0
    }
    
    void testGettingAListenerProperty() {
    	def b = new JButton("foo")
    	def foo = b.actionPerformed
    	assert foo == null
    }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?