Luaj - 从Lua添加JButton动作侦听器

时间:2012-03-30 14:57:30

标签: lua jbutton luaj

在我正在使用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)

1 个答案:

答案 0 :(得分:1)

我来得有点迟了,但作为参考,swingapp.lua脚本显示了如何处理听众:

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

使用Luaj-jse 3.0-alpha1进行测试