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
}