Bonjour,
je souhaitais pouvoir ouvrir l'explorateur de fichier via une applet java.

Le code fonctionne correctement, cependant il reside un probleme, la fenetre parcourir ne se ferme pas, et je ne vois pas pourquoi.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
 
JNIEXPORT jobjectArray JNICALL Java_upload_main_parcourWinC(JNIEnv *p, jobject o)
{
	jobjectArray t =  NULL;
    int argc = 0;
    char **argv = NULL;
 
 
    gtk_init(&argc,&argv);
 
    GtkWidget *pFileSelection;
    GSList *fileList;
    gchar *sChemin;
    GSList *elt;
    int i;
    int j;
 
    /* Creation de la fenetre de selection */
    pFileSelection = gtk_file_chooser_dialog_new("Ouvrir...",NULL ,GTK_FILE_CHOOSER_ACTION_OPEN,	GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,GTK_STOCK_OPEN, GTK_RESPONSE_OK,NULL);
    /* On limite les actions a cette fenetre */
    gtk_window_set_modal(GTK_WINDOW(pFileSelection), TRUE);
 
    gtk_file_chooser_set_select_multiple( GTK_FILE_CHOOSER(pFileSelection) , TRUE );
    /* Affichage fenetre */
    switch(gtk_dialog_run(GTK_DIALOG(pFileSelection)))
    {
        case GTK_RESPONSE_OK:
            /* Recuperation du chemin */
            fileList = gtk_file_chooser_get_filenames ( GTK_FILE_CHOOSER(pFileSelection) );
            i = g_slist_length( fileList );
            t = (*p)->NewObjectArray( p , i  , (*p)->FindClass(p, "java/lang/String"), NULL ); 
            for( j=0 ; j < i ; j++ )            
            {
                elt = g_slist_nth( fileList , j );
                sChemin = (gchar*) (elt->data);
                (*p)->SetObjectArrayElement(p, t , j  ,(*p)->NewStringUTF(p, sChemin ));		
	            g_free(sChemin);
            }   
            break;
        default:
            break;
    }                
    gtk_widget_destroy(pFileSelection);
    return t;
}
Pourtant je detruis bien la fenetre, et le return se fais correctement.

Mais elle reste quand meme, mais je ne peux plus que la deplacer.


Si quelqu'un a une idee

Merci d'avance.

[edit]
Je viens de faire un test, mais ca ne viens pas de java.
En appli C simple, la fenetre se ferme car l'appli est termine, sinon elle reste ouverte malgre le gtk_widget_destroy() enfin il me semble.