Skip to Main Content

Overriding Interface methods via JNI

893718Oct 11 2011 — edited Oct 11 2011
Hello,

How we can override Interface methods via JNI?

For example:

At HelloWorldSwing example:

http://download.oracle.com/javase/tutorial/uiswing/examples/start/HelloWorldSwingProject/src/start/HelloWorldSwing.java

I've written anonymous Interface as:
import javax.swing.*;        

public class HelloWorldSwing1 {
    /**
     * Create the GUI and show it.  For thread safety,
     * this method should be invoked from the
     * event-dispatching thread.
     */
    private static void createAndShowGUI() {
        //Create and set up the window.
        JFrame frame = new JFrame("HelloWorldSwing");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        //Add the ubiquitous "Hello World" label.
        JLabel label = new JLabel("Hello World");
        frame.getContentPane().add(label);

        //Display the window.
        frame.pack();
        frame.setVisible(true);
    }
    
    static Runnable runnableObject = new Runnable() {
    	public void run() {
    		createAndShowGUI();    		
    	}
    };
    
   public static void main(String[] args) {
    	//Schedule a job for the event-dispatching thread:
        //creating and showing this application's GUI.
        SwingUtilities.invokeLater(runnableObject);
    }
}
via JNI functions(http://download.oracle.com/javase/1.4.2/docs/guide/jni/spec/functions.html) we cannot override Runnable Interface's run method? Can we?

Only:

RunnableClass's value isn't null with given example at below. FindClass finds the Runnable Interface.
jclass RunnableClass;
RunnableClass = (*env)->FindClass(env,"java/lang/Runnable");
  if( RunnableClass == NULL ) {
    printf("can't find class Runnable\n");
    exit (-1);
  }
But How can we override Runnable class's run method?

Thanks in Advance
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked due to inactivity on Nov 8 2011
Added on Oct 11 2011
1 comment
3,386 views