java - Using a Timer in Swing to display a picture for 5 seconds -


i trying make login picture application using timer. idea is, when user opens application, see picture 5 seconds, application start.

i tried, can see in method shoutoff():

     /*  * change license header, choose license headers in project properties.  * change template file, choose tools | templates  * , open template in editor.  */  package login;   import java.awt.event.actionevent; import java.awt.event.actionlistener; import javax.swing.timer;  /**  *  * @author isslam  */  public class login extends javax.swing.jframe {  timer time;     /**      * creates new form login      */      public login() {         initcomponents();         setlocation(350, 200);          time = new timer(5000,new actionlistener() {          @override          public void actionperformed(actionevent e) {               dispose();          }      });      time.setrepeats(false);      }  public void shoutoff(){ if (!time.isrunning()) {         time.start();     }  }     /**      * method called within constructor initialize form.      * warning: not modify code. content of method      * regenerated form editor.      */     @suppresswarnings("unchecked")     // <editor-fold defaultstate="collapsed" desc="generated code">                               private void initcomponents() {          jlabel1 = new javax.swing.jlabel();          setdefaultcloseoperation(javax.swing.windowconstants.exit_on_close);         setalwaysontop(true);         setcursor(new java.awt.cursor(java.awt.cursor.default_cursor));         setlocationbyplatform(true);         setundecorated(true);         setresizable(false);          jlabel1.seticon(new javax.swing.imageicon("c:\\users\\isslam\\desktop\\one_piece_marble_play_by_iviarker-d511vb0.jpg")); // noi18n          javax.swing.grouplayout layout = new javax.swing.grouplayout(getcontentpane());         getcontentpane().setlayout(layout);         layout.sethorizontalgroup(             layout.createparallelgroup(javax.swing.grouplayout.alignment.leading)             .addcomponent(jlabel1)         );         layout.setverticalgroup(             layout.createparallelgroup(javax.swing.grouplayout.alignment.leading)             .addcomponent(jlabel1)         );          pack();     }// </editor-fold>                              /**      * @param args command line arguments      */     public static void main(string args[]) {         /* set nimbus , feel */         //<editor-fold defaultstate="collapsed" desc=" , feel setting code (optional) ">         /* if nimbus (introduced in java se 6) not available, stay default , feel.          * details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html           */         try {             (javax.swing.uimanager.lookandfeelinfo info : javax.swing.uimanager.getinstalledlookandfeels()) {                 if ("nimbus".equals(info.getname())) {                     javax.swing.uimanager.setlookandfeel(info.getclassname());                     break;                 }             }         } catch (classnotfoundexception ex) {             java.util.logging.logger.getlogger(login.class.getname()).log(java.util.logging.level.severe, null, ex);         } catch (instantiationexception ex) {             java.util.logging.logger.getlogger(login.class.getname()).log(java.util.logging.level.severe, null, ex);         } catch (illegalaccessexception ex) {             java.util.logging.logger.getlogger(login.class.getname()).log(java.util.logging.level.severe, null, ex);         } catch (javax.swing.unsupportedlookandfeelexception ex) {             java.util.logging.logger.getlogger(login.class.getname()).log(java.util.logging.level.severe, null, ex);         }         //</editor-fold>          /* create , display form */         java.awt.eventqueue.invokelater(new runnable() {             public void run() {                 new login().setvisible(true);                new login().shoutoff();             }         });     }      // variables declaration - not modify                          private javax.swing.jlabel jlabel1;     // end of variables declaration                    } 

start creating timer once in constructor. timer should, also, make current instance of login close

public login() {     //...     time = new timer(5000,new actionlistener() {          @override          public void actionperformed(actionevent e) {               dispose();          }      });      timer.setrepeats(false); } 

in shoutoff method, start timer...

public void shoutoff(){     if (!time.isrunning()) {         timer.start();     } } 

take closer @ how use swing timers more details.

you might have read through code conventions java tm programming language, make easier people read code , read others