Gå til innhold

Timere events og objekter:(


Anbefalte innlegg

Har store problemer med og sette teksten pa lblCurrentTime labelen, her er koden:

 

/*
* frmMain.java
*
* Created on March 4, 2006, 8:41 PM
*/

/**
*
* @author  Richard
*/

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.Calendar;
import java.text.SimpleDateFormat;

import javax.swing.JOptionPane;
import javax.swing.Timer;

public class frmMain extends javax.swing.JFrame
{
  private void TimerEvent(ActionEvent e){
        gCal.add(Calendar.SECOND, 1);
        String TimeTxt = formmater.format(gCal.getTime());
        
        lblCurrentTime.SetText(TimeTxt);
     };
  /** Creates new form frmMain */
  public frmMain()
  {
     initComponents();
     
     timer.addActionListener(new ActionListener()
     {
        public void actionPerformed(ActionEvent e)
        {
           TimerEvent(e);
        }
     });
     
     timer.start();

     
  }
  

  
  /** This method is called from within the constructor to
   * initialize the form.
   * WARNING: Do NOT modify this code. The content of this method is
   * always regenerated by the Form Editor.
   */
  // <editor-fold defaultstate="collapsed" desc=" Generated Code ">
  private void initComponents()
  {
     javax.swing.JLabel lblCurrentTime;

     lblCurrentTime = new javax.swing.JLabel();

     setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
     lblCurrentTime.setFont(new java.awt.Font("Times New Roman", 1, 36));
     lblCurrentTime.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
     lblCurrentTime.setText("00:00:00");
     lblCurrentTime.setFocusable(false);

     org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(getContentPane());
     getContentPane().setLayout(layout);
     layout.setHorizontalGroup(
        layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
        .add(layout.createSequentialGroup()
           .addContainerGap()
           .add(lblCurrentTime)
           .addContainerGap(258, Short.MAX_VALUE))
     );
     layout.setVerticalGroup(
        layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
        .add(layout.createSequentialGroup()
           .add(19, 19, 19)
           .add(lblCurrentTime)
           .addContainerGap(239, Short.MAX_VALUE))
     );
     pack();
  }// </editor-fold>
  
  /**
   * @param args the command line arguments
   */
  public static void main(String args[])
  {
     java.awt.EventQueue.invokeLater(new Runnable()
     {
        public void run()
        {
           new frmMain().setVisible(true);
        }
     });
  }
  
        

  
  // Variables declaration - do not modify
  // End of variables declaration
  private GregorianCalendar gCal = new GregorianCalendar();
  private String TimeFormat = "HH:MM:SS";
  private SimpleDateFormat formmater = new SimpleDateFormat(TimeFormat);
  private Timer timer;
}

Noen ide hvorfor jeg ikke kan sette teksten pa lblCurrentTime? jeg far feilmelding i TimerEvent funksjonen pa linjen "lblCurrentTime.SetText(TimeTxt);"

 

Feilmeldingen jeg far er Cannot Find symbol, lblCurrentTime

 

 

Hva er galt?

Lenke til kommentar
Videoannonse
Annonse

Problemet er at lblCurrentTime bare er deklarert i initComponents().

 

Du kan endre dette manuelt ved å flytte linja

 

javax.swing.JLabel lblCurrentTime;

 

ned til resten av deklarasjonene dine i bunn. Du kan også prøve å gjøre dette i Form Editoren din. Egenskapen burde hete noe sånt som variable scope e.l.

Lenke til kommentar

hehe, Jeg bruker NetBeans 5, den linja er merket med blatt, eg kan ikke redigere noe der... hvor finner jeg variable scope?

 

Finner kun 'Change Variable name", ikke noe som har med scope og gjore...

 

BTW, vil Timeren min virke? (Jeg kommenterte ut lblCurrentTime.SetText kommandoen, og satte in this.SetTitle(TimeTxt); istedenfor, men jeg far en del feilmeldinger;)

 

init:

deps-jar:

compile:

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException

        at frmMain.<init>(frmMain.java:35)

        at frmMain$2.run(frmMain.java:96)

        at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)

        at java.awt.EventQueue.dispatchEvent(EventQueue.java:461)

        at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)

        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)

        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)

        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)

        at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)

 

 

noen ide?

 

[EDIT] Fins det noen gode tutorial'er p a Events(hvordan bruke dem, lage egne etc)

Endret av Richard87
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...