Visualizzazione dei risultati da 1 a 9 su 9

Discussione: Problema con JApplet

  1. #1

    Problema con JApplet

    Salve. Allora, ho cercato di creare una applet che, visualizzerebbe un JTextField, e una volta inserito un nome e premuto Invio, si avvierebbe un JFrame con il titolo scelto del JTextField...

    primo problema: sono costretto a dichiarare "final" il JTextField e non capisco perchè.

    secondo problema: vengono lanciate eccezioni sulla sicurezza e l'applet non viene avviata correttamente

    Il tutto potete vederlo qui: http://img102.imageshack.us/img102/9117/probcm6.png

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802

    Re: Problema con JApplet

    Originariamente inviato da Dreamer89
    primo problema: sono costretto a dichiarare "final" il JTextField e non capisco perchè.
    Deve essere final perchè viene utilizzato in una classe interna. Se ci pensi un attimo ha perfettamente senso questa cosa
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  3. #3

    Re: Re: Problema con JApplet

    Originariamente inviato da Alex'87
    Deve essere final perchè viene utilizzato in una classe interna. Se ci pensi un attimo ha perfettamente senso questa cosa
    Quindi diventa una costante? Ma le costanti si dichiarano sia con static final che con solo final?

  4. #4
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802

    Re: Re: Re: Problema con JApplet

    Originariamente inviato da Dreamer89
    Quindi diventa una costante? Ma le costanti si dichiarano sia con static final che con solo final?
    Solo final.

    edit: o meglio, final è sufficiente per creare una costante ma spesso si usa anche "static" per poterle condividere facilmente
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  5. #5
    Nessuno sa aiutarmi? Approfitto del topic per chiedervi anche un'altra cosa: esiste un metodo che sia in grado di fornire il dominio sulla quale l'applet si trova?

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Problema con JApplet

    Originariamente inviato da Dreamer89
    primo problema: sono costretto a dichiarare "final" il JTextField e non capisco perchè.
    Una anonymous inner class (così come una method-local inner class) può fare riferimento ad una variabile locale del metodo/costruttore (in cui è dichiarata ... ovviamente) ma tale variabile deve essere final. La istanza della inner class può benissimo continuare a "vivere" anche dopo che il metodo/costruttore è terminato (basta che resti referenziata, come nel tuo esempio dove il listener resta "registrato" e quindi referenziato nel JTextField).
    Ma è chiaro che le variabili locali del metodo/costruttore spariscono quando esso termina! Il final permette in un certo senso di "congelare" il valore e quindi renderlo visibile alle inner-class.

    Originariamente inviato da Dreamer89
    secondo problema: vengono lanciate eccezioni sulla sicurezza e l'applet non viene avviata correttamente
    Il default close operation a EXIT_ON_CLOSE fa in modo che alla chiusura del frame venga invocato System.exit(0);
    Lo dice anche la documentazione:

    EXIT_ON_CLOSE (defined in JFrame): Exit the application using the System exit method. Use this only in applications.

    Ora ragiona un momento ... in una applicazione ha senso fare un System.exit(). In una applet? No, non ha senso.

    Originariamente inviato da Dreamer89
    esiste un metodo che sia in grado di fornire il dominio sulla quale l'applet si trova?
    Se vuoi sapere da dove è stata scaricata la applet, Applet ha il metodo getCodeBase().
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  7. #7
    Davvero mille grazie andbin, se non ci fossi tu che mondo sarebbe?!
    Allora, l'applet funziona correttamente dopo aver sostituito EXIT_ON_CLOSE con DISPOSE_ON_CLOSE (credo che ci azzecchi), però il JFrame che si apre ha una barra in fondo con scritto: "Java Applet Window", non c'è un modo per eliminarla?

    getDocumentBase() funziona, però mi sarebbe più comodo un qualche metodo che mi indichi solo il dominio, se esiste :P

  8. #8
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da Dreamer89
    però il JFrame che si apre ha una barra in fondo con scritto: "Java Applet Window", non c'è un modo per eliminarla?
    No, serve per segnalare all'utente che quella è una finestra aperta dalla applet. Per motivi di sicurezza.

    Originariamente inviato da Dreamer89
    getDocumentBase() funziona, però mi sarebbe più comodo un qualche metodo che mi indichi solo il dominio, se esiste :P
    Beh, hai un URL, guarda la documentazione. Ha un getHost(), getProtocol() ecc.....
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  9. #9
    Originariamente inviato da andbin
    No, serve per segnalare all'utente che quella è una finestra aperta dalla applet. Per motivi di sicurezza.

    Beh, hai un URL, guarda la documentazione. Ha un getHost(), getProtocol() ecc.....
    Perfetto, ti ringrazio ^^

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.