Luaj - 从Lua中添加JButton动作监听器

在我正在开发的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)

原文链接 https://stackoverflow.com/questions/9945437

点赞
stackoverflow用户15459
stackoverflow用户15459

我来晚了一点,但供参考,swingapp.lua 脚本展示了如何处理监听器:

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

已经使用 Luaj-jse 3.0-alpha1 进行测试。

2012-10-23 11:30:40