2012-03-30 36 views
0

在我正在Java SE中开发的应用程序中,我使用Luaj实现功能(这是一个数据收集器应用程序)。 Java应用程序读取设备的COM端口并将数据提供给由应用程序用户编写的Lua事件处理程序。部分用户界面也是由Lua构建的,但是,我在将ActionListener对象(在Lua中实现)添加到Swing组件(如JButton)时遇到问题。Luaj - 从Lua添加JButton动作侦听器

的代码我currenty停留在:

button = luajava.newInstance("javax.swing.JButton","test") 
visuals:getPanel():add(button) 

这将创建一个JButton对象,并把它JPanel组件上。我想在Lua中定义这个按钮的动作监听器。

任何想法我可以做到这一点?

我尝试了以下,但它显然不工作。

al = {} 
function al.actionPerformed(ev) 
    print("test") 
end 

button.addActionListener(al) 

回答

1

我来晚了一点,但是对于参考,swingapp.lua脚本显示如何处理听众:

button:addActionListener(luajava.createProxy('java.awt.event.ActionListener', 
{ 
    actionPerformed = function (e) 
    print('Action', e) 
    end, 
})) 

测试与Luaj-JSE 3.0-α1

+0

非常有用的,谢谢!如果luaj制作了一些体面的文档,这样的问题不会经常出现! :P再次感谢! – Miguel 2013-04-04 02:03:25