2012-03-30 7 views
0

In der Anwendung, die ich in Java SE entwickle, verwende ich Luaj, um Funktionalität zu implementieren (dies ist eine Datensammelanwendung). Die Java-App liest einen COM-Port eines Geräts und gibt die Daten an Lua Event-Handler weiter, die vom Benutzer der Anwendung geschrieben wurden. Ein Teil der Benutzeroberfläche ist ebenfalls aus Lua aufgebaut, aber ich habe Probleme beim Hinzufügen von ActionListener-Objekten (auch in Lua implementiert) zu Swing-Komponenten wie JButton. Dadurch entsteht ein JButton ObjektLuaj - JButton Action-Listener von Lua hinzufügen

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

und legt es auf eine JPanel-Komponente:

Der Code bin ich currenty bei stecken. Ich möchte den Aktionslistener für diese Schaltfläche auch in Lua definieren.

Irgendeine Idee, wie ich das tun kann?

Ich habe Folgendes versucht, aber es funktioniert offensichtlich nicht.

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

button.addActionListener(al) 

Antwort

1

komme ich ein bisschen spät, aber für den Hinweis, das swingapp.lua Skript zeigt, wie Zuhörer zu handhaben:

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

Getestet mit Luaj-jse 3.0-alpha1

+0

Sehr nützlich, Vielen Dank! Probleme wie diese würden nicht so oft auftreten, wenn luaj eine anständige Dokumentation erstellt hätte! : P Danke nochmal! – Miguel