diff --git a/.classpath b/.classpath index 80b76067..a50c56c6 100644 --- a/.classpath +++ b/.classpath @@ -6,6 +6,7 @@ + diff --git a/src/j2se/org/luaj/lib/j2se/LuajavaLib.java b/src/j2se/org/luaj/lib/j2se/LuajavaLib.java index bac9d6a0..4cba3345 100644 --- a/src/j2se/org/luaj/lib/j2se/LuajavaLib.java +++ b/src/j2se/org/luaj/lib/j2se/LuajavaLib.java @@ -38,6 +38,8 @@ import java.util.List; import java.util.Map; import org.luaj.vm.LFunction; +import org.luaj.vm.LNil; +import org.luaj.vm.LString; import org.luaj.vm.LTable; import org.luaj.vm.LUserData; import org.luaj.vm.LValue; @@ -126,7 +128,7 @@ public final class LuajavaLib extends LFunction { final int ninterfaces = Math.max(0,vm.gettop()-2); if ( ninterfaces <= 0 ) throw new LuaErrorException("no interfaces"); - final LValue function = vm.tofunction(-1); + final LValue lobj = vm.totable(-1); try { // get the interfaces final Class[] ifaces = new Class[ninterfaces]; @@ -136,12 +138,18 @@ public final class LuajavaLib extends LFunction { // create the invocation handler InvocationHandler handler = new InvocationHandler() { public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { - vm.pushlvalue(function); - int n = args.length; - for ( int i=0; i0? args[0]: "/swingapp.luac"); + String script = (args.length>0? args[0]: "/swingapp.lua"); System.out.println("loading '"+script+"'"); // load the file diff --git a/src/test/res/swingapp.lua b/src/test/res/swingapp.lua index b58ec403..37775b6d 100644 --- a/src/test/res/swingapp.lua +++ b/src/test/res/swingapp.lua @@ -18,3 +18,12 @@ jframe = luajava.bindClass( "javax.swing.JFrame" ) frame:setDefaultCloseOperation(jframe.EXIT_ON_CLOSE) frame:pack() frame:setVisible(true) + +local listener = luajava.createProxy("java.awt.event.MouseListener", + { + mouseClicked = function(me) + print("clicked!", me) + end + }) + +frame:addMouseListener(listener) diff --git a/version.properties b/version.properties index 57f14439..2180e2b5 100644 --- a/version.properties +++ b/version.properties @@ -1 +1 @@ -version: 0.80 +version: 0.81