I'm making a JLabel display a timer,so it is being updated every second and I'm updating it with the help of a thread I'm using SwingWorker to update the JLabel but it is not working.
Here is my code...

```
long pos=-1;
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         

     try
    {
        pos=...value of timer....
        jLabel1.setText("in function");
        jLabel3.setText("in function");
        timer=new Thread(new adsa());
        timer.start();

    }
    catch(Exception e)
    {    
        System.out.println("EXCEPTION CAUGHT");
    }
}                                        

/**
 *
 */
public void run()
{

    try
    {

        System.out.println(pos);

    while(pos!=0 && clip.isRunning())
    {
        label1.setText(String.valueOf(pos));
        System.out.println(pos);
        pos--;
        timer.sleep(1000);

        SwingWorker worker = new SwingWorker() {

            @Override
            public Object doInBackground(){

                try
                {
                jLabel3.setText(String.valueOf(pos));
                jLabel3.setText("ghfdxhc");
                label1.setText("hvgjh");
                System.out.println("zxc");

                return null;
                }
                catch(Exception e)
                {
                    return null;
                }

            }
        };
        worker.execute();
      }

    }
    catch(Exception e)
    {
        System.out.println("Error in run");
    }
}

```

All the println statements are working,even the one's inside SwingWorker but jLabel is not being updated, "in function" is displayed on both labels and it is not changing.
Kindly suggest an alternative method if possible...