Visualizzazione risultati 1 fino 5 di 5

Discussione: Aiuto applet miste

  1. #1
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,769

    Predefinito Aiuto applet miste

    Salve,

    Ho da poco iniziato a creare un'applet mista, cioè un'applicazione che apre una normare applet contenente un pulsante che cliccato apre una finestra separata.

    Il codice è questo:
    Codice:
    import java.awt.*;
    import java.applet.*;
    import javax.swing.*;
    import java.awt.event.*;
    import java.lang.*;
    
    class Events extends WindowAdapter
    {
       public void windowClosing(WindowEvent e)
       {
          System.exit(0);
       }
    }
    
    class Gest implements ActionListener
    {
       public void actionPerformed(ActionEvent evt) 
       {
          String listen = evt.getActionCommand();	  
    	  if (listen == "avvia applicazione") {
    	     new _Frame();
    	  }
       }
    }
    
    class _Frame extends JFrame 
    {
      public _Frame() 
      {
        super("finestra");
        setLocation(100,100);
        setSize(200,100);
    
        setVisible(true);
        addWindowListener(new Events());
      }
    }
    
    public class main extends Applet
    {   
       public void init() 
       {
          Button enter = new Button("avvia applicazione");
    	  add(enter);
    	  enter.addActionListener(new Gest());
       }
    }
    Quando clicco sul pulsanti va tutto bene, ma non so perché, affianco la finestra appare un simbolo giallo e cliccando sul pulsante per chiudere la finestra non mi si chiude.

    A qualche significato in particolare quel simbolo che appare affianco la finestra? come mai non mi si chiude?

    In'oltre la finestra mi si chiude quando chiudo il browser, potrei far evitare di chiudere la finestra alla chiusura del browser?

    Premetto che non posso linkare il tutto perché sto lavorando in locale.

    Sevenjeak
    Software developer and much more

  2. #2
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    Il problema è quel System.exit(0): funziona benissimo se sviluppi codice da eseguire tramite la console, ma non è che puoi arrestare come ti pare la Java Virtual Machine mentre è in esecuzione sul browser...

    A quanto ho capito, a te basterebbe che la finestra venisse distrutta quando si preme il pulsante di chiusura, giusto? Se è così, puoi usare il metodo setDefaultCloseOperation (DISPOSE_ON_CLOSE): il bello di questa soluzione è che non devi nemmeno implementare il gestore di eventi (sempre che, ovviamente, non ti serva per altri scopi)...

    Il simbolo giallo probabilmente indica che la tua è una finestra di un'applet: è una funzione "di sicurezza"... serve ad evitare la creazione di finestre-applet che possano confondere l'utente che le utilizza.

    Infine, non puoi evitare la chiusura della tua finestra quando chiudi il browser. Il motivo in parte dovresti averlo capito da qui sopra: chiudendo il browser, arresti anche la JVM, che a sua volta arresta tutte le classi in esecuzione.

    Stammi bene...
    Ultima modifica di dementialsite : 06-10-2010 alle ore 19.17.59
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

  3. #3
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,769

    Predefinito

    Citazione Originalmente inviato da dementialsite Visualizza messaggio
    Il simbolo giallo probabilmente indica che la tua è una finestra di un'applet: è una funzione "di sicurezza"... serve ad evitare la creazione di finestre-applet che possano confondere l'utente che le utilizza.
    In che senso? E' possibile farlo sparire?

    Citazione Originalmente inviato da dementialsite Visualizza messaggio
    Infine, non puoi evitare la chiusura della tua finestra quando chiudi il browser. Il motivo in parte dovresti averlo capito da qui sopra: chiudendo il browser, arresti anche la JVM, che a sua volta arresta tutte le classi in esecuzione.
    Si si, quello lo so, ma il fatto è che su internet mi è parso di vedere un'applicazione del genere.

    Hai presente la scansione online di f-secure? se non sbaglio quella è una finestra di java vero? chiudendo il browser ho notato che la finestra non viene chiusa, come è possibile?

    Sevenjeak
    Software developer and much more

  4. #4
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    Quel simbolo giallo è considerato una funzione di sicurezza perché sarebbe possibile:
    - scrivere un'applet di dimensioni 0x0
    - far aprire da quest'applet una finestra molto simile a quella del sistema operativo che esegue l'applet

    Per questo motivo, dovrebbe comparire un avviso con scritto "Avviso: finestra dell'applet" (oppure "Warning: applet window" se hai la JVM in inglese).

    Stammi bene...
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

  5. #5
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,769

    Predefinito

    Forse sono io che sbaglio qualcosa, ma come mai allora quest'applet mi rimane aperta alla chiusura del borwser?

    Non so, mi è parso di vedere alcune applet che prima della loro esecuzione chiedono all'utente il consenso di eseguire la jvm e naturalmente non hanno quel simbolo che appare a me, come fanno a fare questo? o forse non sono applet? cosa che mi pare impossibile visto che la jvm è caratteristica di java.

    P.S.:

    Ti spiego meglio.

    Quest'applet io vorrei usarla per sostituirla alla char in php creata da me, lo so, potrei utilizzare anche altri linguaggi, ma avevo pensato a java perché:
    • Avrei la necessità di creare un'evento che scollega l'utente non appena chiude la finestra, almeno evito di controllare ogni volta se l'utente è online, visto che, se chiude la finestra del browser, senza disconnettersi correttamente, l'utente non viene subito scollegato.
    • Voglio offrire la possibilità di chiudere il browser lasciando la chat aperta, credo che cosi, se il browser dovesse non rispondere ( bloccarsi ) l'applicazione, visto che è a parte, non si dovrebbe bloccare, o sbaglio?
    • Voglio offrire all'utente, se lo vuole, la possibilità di tenerlo aperto pur chiudendo tutti gli altri programmi compreso il browser, da quello che so cosi facendo, si risparmia cpu, o sbaglio?
    Ultima modifica di sevenjeak : 07-10-2010 alle ore 09.49.50

    Sevenjeak
    Software developer and much more

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •