Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [JAVA] Errore nel salvataggio di un Form-Swing dello stream, da cosa è dipeso e come risolverlo?

    Buongiorno, sto cercando di salvare lo stream di una classe Swing in un file XML, ma in una circostanza spiegata nei commenti genera errore, ecco il codice:

    codice:
              XMLEncoder e = new XMLEncoder( new BufferedOutputStream( new
              FileOutputStream(dir+"Form.xml")));
        
               //Estraendo il Form da una classe esterna, il programma genera errore: 
              JFrame login = new Login();
    
               //JFrame login = new JFrame() //Creando un JFrame qui il programma funziona creando il buffer dello stream.
                
                        
              e.writeObject(login); 
              e.close()
    codice:
    java.lang.IllegalAccessException: class sun.reflect.misc.Trampoline cannot access class test.Login (in module TestFrame) because module TestFrame does not export test to unnamed module @574b560f
    Continuing ...
    java.lang.Exception: XMLEncoder: discarding statement XMLEncoder.writeObject(Login);
    Continuing ...
    L'errore dipende dall' accesso alla classe che restituisce l'oggetto JFrame, forse devo aggiungere nel module-info.java dei parametri?
    Ultima modifica di jabjoint; 16-07-2025 a 07:43
    jabjoint

  2. #2
    Quote Originariamente inviata da jabjoint Visualizza il messaggio
    Buongiorno, sto cercando di salvare lo stream di una classe Swing in un file XML, ma in una circostanza spiegata nei commenti genera errore, ecco il codice:

    codice:
              XMLEncoder e = new XMLEncoder( new BufferedOutputStream( new
              FileOutputStream(dir+"Form.xml")));
        
               //Estraendo il Form da una classe esterna, il programma genera errore: 
              JFrame login = new Login();
    
               //JFrame login = new JFrame() //Creando un JFrame qui il programma funziona creando il buffer dello stream.
                
                        
              e.writeObject(login); 
              e.close()
    codice:
    java.lang.IllegalAccessException: class sun.reflect.misc.Trampoline cannot access class test.Login (in module TestFrame) because module TestFrame does not export test to unnamed module @574b560f
    Continuing ...
    java.lang.Exception: XMLEncoder: discarding statement XMLEncoder.writeObject(Login);
    Continuing ...
    L'errore dipende dall' accesso alla classe che restituisce l'oggetto JFrame, forse devo aggiungere nel module-info.java dei parametri?
    Da una ricerca si evince che sia da usare add-exports:

    add-exports: opens access to public classes existing in modules, which are not exported through module-info.java. So your code/jars in classpath can access public classes exported by module-info.java, but this one allows access to public classes which are not exported through module-info.java as well
    jabjoint

  3. #3
    Quote Originariamente inviata da jabjoint Visualizza il messaggio
    Da una ricerca si evince che sia da usare add-exports:

    add-exports: opens access to public classes existing in modules, which are not exported through module-info.java. So your code/jars in classpath can access public classes exported by module-info.java, but this one allows access to public classes which are not exported through module-info.java as well
    Ho risolto così, aggiungendo nel modul-info.java;

    exports test;
    jabjoint

  4. #4
    Quote Originariamente inviata da jabjoint Visualizza il messaggio
    Ho risolto cos�, aggiungendo nel modul-info.java;

    exports test;
    Ma non � una soluzione corretta, si duplica il form!
    jabjoint

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.