2012-03-30 72 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