🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: be.comp.programming
1 messages
1 total messages Started by Mikoyan Sat, 05 Apr 2003 13:10
JNI Newbie: oproepen java methoden vanuit C
#5366
Author: Mikoyan
Date: Sat, 05 Apr 2003 13:10
50 lines
2684 bytes
Hallo,

ik probeer voor collega studenten een SystemTray te
schrijven voor een in Java geschreven ICQ/MSN/YAHOO
messenger. Nu verschijnt er in KDE/GNOME al een mooi
icoontje in the notification area (of hoe ze dat in
godsnaam nu ook mogen noemen), maar het ding begeeft
het wanneer het callbacks moet uitvoeren, maw. java
methodes oproepen vanuit de C code...

Een code sniplet volgt hieronder. Het ding crashed
blijkbaar op

listenercls = (*env)->GetObjectClass(env, listener);

maar ik heb het vermoeden dat het het al misloopt bij
de eerste ->GetObjectClass, vermits wanneer ik de waarde
van cls uitprint, die steeds anders is, en de waarde
van fid steeds nul is... Hopelijk kan iemand mij op
de goede weg zetten, dank bij voorbaat.

Mikoyan

<snip>
/*
 * Gtk Callback Function
 */
static gboolean tray_clicked (GtkWidget *event_box, 
			GdkEventButton *event, gpointer data) {
    JavaObject *javaObject = (JavaObject*) data;
	
	JNIEnv *env = javaObject->env;
	jobject obj = javaObject->obj;
	
	jclass cls;
	jobject listener;;
	jclass listenercls;	
	jfieldID fid;
	
	cls = (*env)->GetObjectClass(env, obj);	
g_print("This Class : %d\n", cls);	
	fid = (*env)->GetFieldID(env, cls, "listener", "LSystemTrayListener");	
g_print("Listener fid : %d\n", fid);
	listener = (*env)->GetObjectField(env, obj, fid);
g_print("listener : %d\n", listener);
		
	listenercls = (*env)->GetObjectClass(env, listener);
g_print("Listener Class : \n");	

</snip>
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads