在我正在使用Java SE开发的应用程序中,我使用Luaj来实现功能(这是一个数据收集器应用程序)。 Java应用程序读取设备的COM端口,并将数据提供给由应用程序用户编写的Lua事件处理程序。用户界面的一部分也是用Lua构建的,但是,我在将ActionListener对象(也在Lua中实现)添加到Swing组件(例如JButton)时遇到了问题。
我目前陷入的代码:
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)
答案 0 :(得分:1)
我来得有点迟了,但作为参考,swingapp.lua脚本显示了如何处理听众:
button:addActionListener(luajava.createProxy('java.awt.event.ActionListener',
{
actionPerformed = function (e)
print('Action', e)
end,
}))
使用Luaj-jse 3.0-alpha1进行测试