Não esta subtraindo. [RESOLVIDO]

Boa madrugada ae galera ehehe, bom to aqui estudando e tentando acabar aqui um projeto so que nao estou conseguindo achar o erro, estou tentando subtrair o textFieldtempo2 com o tempo de uma variavel (“resultado”) e setar o resultado em um textFieldTempo3 pra ter o valor de quanto gastou em segundos de um ponto ao outro, mas se meu tempo corrente excede 5 segundos no meu textFieldTempo3 ele nao subtrai e atribui o valor corrente to procurando o erro mas nao consigo achar, segue o codigo:

import java.awt.EventQueue;

import java.awt.SystemColor;
import javax.swing.JOptionPane;

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/*
 * Tempo.java
 *
 * Created on 18/10/2009, 11:53:32
 */

/**
 *
 * @author Everton
 */
public class Tempo extends javax.swing.JFrame {

    Long tempoInicial;
    Long tempoFinal;
    Long resultado;
    int time = 0;
    Thread clockThread;

  

    /** Creates new form Tempo */
    public Tempo() {
        initComponents();

        botaoParar.setEnabled(false);
        botaoLimpar.setEnabled(false);
        botaoCalcular.setEnabled(false);
    }

    private class Clock implements Runnable{

        public void run() {
           try {
            while(true){
              
                    EventQueue.invokeLater(new Runnable() {

                        public void run() {
                            textField2.setText("" + (time++));
                        }
                    });
                    
                    Thread.sleep(1000);
                } 
                }catch (InterruptedException ex) {
           }
        }
    }

    public Long getResultado(){

      resultado = Long.valueOf(textFieldTime1.getText()) +
                  Long.valueOf(textFieldTime2.getText()) +
                  Long.valueOf(textFieldTime3.getText());

      return resultado;
    }

    /** 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.
     */
    @SuppressWarnings("unchecked")



    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {

        jPanel1 = new javax.swing.JPanel();
        jLabel1 = new javax.swing.JLabel();
        jLabel2 = new javax.swing.JLabel();
        botaoIniciar = new javax.swing.JButton();
        botaoParar = new javax.swing.JButton();
        jLabel3 = new javax.swing.JLabel();
        textField2 = new java.awt.TextField();
        textField3 = new java.awt.TextField();
        botaoLimpar = new javax.swing.JButton();
        jLabel4 = new javax.swing.JLabel();
        textFieldTime1 = new java.awt.TextField();
        jLabel5 = new javax.swing.JLabel();
        textFieldTime2 = new java.awt.TextField();
        jLabel6 = new javax.swing.JLabel();
        textFieldTime3 = new java.awt.TextField();
        botaoCalcular = new javax.swing.JButton();
        jLabelCalculo = new javax.swing.JLabel();
        textFieldCalculo = new java.awt.TextField();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        jPanel1.setBackground(new java.awt.Color(204, 204, 204));
        jPanel1.setForeground(new java.awt.Color(153, 153, 153));

        jLabel1.setFont(new java.awt.Font("Monotype Corsiva", 3, 24));
        jLabel1.setText("CONTAGEM DE TEMPO");

        jLabel2.setFont(new java.awt.Font("Tahoma", 1, 10));
        jLabel2.setText("Tempo Final");

        botaoIniciar.setText("INICIAR");
        botaoIniciar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                botaoIniciar(evt);
            }
        });

        botaoParar.setText("PARAR");
        botaoParar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                botaoParar(evt);
            }
        });

        jLabel3.setFont(new java.awt.Font("Tahoma", 1, 10));
        jLabel3.setText("TEMPO CORRENTE");

        botaoLimpar.setText("LImpar");
        botaoLimpar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                botaoLimpar(evt);
            }
        });

        jLabel4.setText("Time 1");

        jLabel5.setText("Time 2");

        jLabel6.setText("Time 3");

        botaoCalcular.setText("Calcular");
        botaoCalcular.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                botaoCalcular(evt);
            }
        });

        jLabelCalculo.setFont(new java.awt.Font("Tahoma", 1, 10));
        jLabelCalculo.setText("Calculo do Tempo");

        javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
        jPanel1.setLayout(jPanel1Layout);
        jPanel1Layout.setHorizontalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addGap(54, 54, 54)
                        .addComponent(jLabel5))
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
                                .addGap(55, 55, 55)
                                .addComponent(jLabel6)
                                .addGap(250, 250, 250))
                            .addGroup(jPanel1Layout.createSequentialGroup()
                                .addGap(28, 28, 28)
                                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                                    .addComponent(textFieldTime1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                    .addComponent(textFieldTime2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                    .addComponent(textFieldTime3, javax.swing.GroupLayout.DEFAULT_SIZE, 70, Short.MAX_VALUE))
                                .addGap(248, 248, 248)))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jLabel3, javax.swing.GroupLayout.PREFERRED_SIZE, 109, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(textFieldCalculo, javax.swing.GroupLayout.PREFERRED_SIZE, 75, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(textField3, javax.swing.GroupLayout.PREFERRED_SIZE, 85, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
                                .addComponent(textField2, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                .addComponent(jLabelCalculo, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
                        .addGap(235, 235, 235))))
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addGap(49, 49, 49)
                .addComponent(jLabel4)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 278, Short.MAX_VALUE)
                .addComponent(jLabel2)
                .addGap(271, 271, 271))
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addGap(135, 135, 135)
                .addComponent(jLabel1)
                .addContainerGap(302, Short.MAX_VALUE))
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
                .addContainerGap(205, Short.MAX_VALUE)
                .addComponent(botaoIniciar)
                .addGap(18, 18, 18)
                .addComponent(botaoLimpar)
                .addGap(18, 18, 18)
                .addComponent(botaoCalcular)
                .addGap(16, 16, 16)
                .addComponent(botaoParar)
                .addGap(157, 157, 157))
        );
        jPanel1Layout.setVerticalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addGroup(javax.swing.GroupLayout.Alignment.LEADING, jPanel1Layout.createSequentialGroup()
                        .addComponent(jLabel1)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 21, Short.MAX_VALUE)
                        .addComponent(jLabel2))
                    .addComponent(jLabel4))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addComponent(textFieldTime1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jLabel5))
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(textField3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addGap(33, 33, 33)
                        .addComponent(textFieldTime2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED))
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jLabel3)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(textField2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(19, 19, 19)))
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addComponent(jLabel6)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 15, Short.MAX_VALUE))
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jLabelCalculo)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)))
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(textFieldTime3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(textFieldCalculo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(40, 40, 40)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(botaoParar)
                    .addComponent(botaoIniciar)
                    .addComponent(botaoLimpar)
                    .addComponent(botaoCalcular))
                .addContainerGap(14, Short.MAX_VALUE))
        );

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, 537, javax.swing.GroupLayout.PREFERRED_SIZE)
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
        );

        pack();
    }// </editor-fold>                        

    private void botaoIniciar(java.awt.event.ActionEvent evt) {                              
       
        clockThread = new Thread(new Clock());
        clockThread.setDaemon(true);
        clockThread.start();
        
        tempoInicial = System.currentTimeMillis() / 1000;

        botaoParar.setEnabled(true);
    }                             

    private void botaoParar(java.awt.event.ActionEvent evt) {                            

        botaoCalcular.setEnabled(true);
        botaoLimpar.setEnabled(true);
   
        tempoFinal = System.currentTimeMillis() / 1000;
        resultado = tempoFinal - tempoInicial;

        if(textFieldTime1.getText().isEmpty()){

         textFieldTime1.setText(String.valueOf(resultado));

        }else if(textFieldTime2.getText().isEmpty()){

            Long resultTime2 = resultado - Long.valueOf(textFieldTime1.getText());

            textFieldTime2.setText(resultTime2.toString());

        }else if(textFieldTime3.getText().isEmpty()){

            Long resultTime3 = resultado - Long.valueOf(textFieldTime2.getText()); // aqui ele nao esta fazendo a subtraçao e esta pegando o valor corrente quando excede 5 segundos, mas nao sei porque

            textFieldTime3.setText(resultTime3.toString()); // aqui esta pegando o valor corrente em vez da subtraçao ou seja nao esta subtraindo.

            textField2.setText(getResultado().toString());

            textField3.setText(getResultado().toString());

            clockThread.interrupt();
       

        }else{
            JOptionPane.showMessageDialog(null, "Todos os tempos ja estão preenchidos" +
                                            " pressione o botao Limpar para realizar uma" +
                                            " nova contagem");
        }

    }                           

    private void botaoLimpar(java.awt.event.ActionEvent evt) {                             

           textField2.setText(null);
           textField3.setText(null);
           textFieldTime1.setText(null);
           textFieldTime2.setText(null);
           textFieldTime3.setText(null);
           textFieldCalculo.setText(null);

           clockThread.interrupt();

           time = 0;

    }                            

    private void botaoCalcular(java.awt.event.ActionEvent evt) {                               

        if(!textFieldTime1.getText().isEmpty() && !textFieldTime2.getText().isEmpty()
           && !textFieldTime3.getText().isEmpty()){
           
            getResultado();

            textFieldCalculo.setText(resultado.toString());
        }else{
            JOptionPane.showMessageDialog(null,"Para somar os tempos percorridos e preciso " +
                                           "preenchelos");
        }
   
    }                              

    /**
    * @param args the command line arguments
    */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new Tempo().setVisible(true);
            }
        });
    }

    // Variables declaration - do not modify                     
    private javax.swing.JButton botaoCalcular;
    private javax.swing.JButton botaoIniciar;
    private javax.swing.JButton botaoLimpar;
    private javax.swing.JButton botaoParar;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JLabel jLabel5;
    private javax.swing.JLabel jLabel6;
    private javax.swing.JLabel jLabelCalculo;
    private javax.swing.JPanel jPanel1;
    private java.awt.TextField textField2;
    private java.awt.TextField textField3;
    private java.awt.TextField textFieldCalculo;
    private java.awt.TextField textFieldTime1;
    private java.awt.TextField textFieldTime2;
    private java.awt.TextField textFieldTime3;
    // End of variables declaration                   

}

galera vlw ae resolvi aqui ja.