diego12 7 de mar. de 2016
Vai depender de como vc fez o cronometro. Provavelmente irá precisar de um acumulador que pode ser acrescido a cada pausa ou a cada loop/passo.
Exemplo:
boolean pausa = false ;
int passo = 1 ;
int acumulador = 0 ;
// ...........//
if ( pausa == false ) {
passo = 1 ;
} else {
passo = 0 ;
}
acumulador = acumulador + passo ;
// ...........//
System .out .println ( "Tempo " + acumulador + " segundos" ) ;
Para o botão, faça um listener como:
pausa = ! pausa ;
if ( pausa == true ) {
botao .setText ( "Continuar" ) ;
} else {
botao .setText ( "Pausar" ) ;
}
Wagner9 9 de mar. de 2016
Olá amigo segue o código, do cronometro:
private JButton iniciar ;
private static JLabel lConta ;
private JPanel mainPanel ;
private JButton pausar ;
private JButton zerar ;
public static void main ( String [] args ) {
new PrincipalTela (). montaTela ();
Cronometro cont = new Cronometro ( lConta );
cont . start ();
}
private void montaTela (){
this . setTitle ( "Cronometro" );
this . setDefaultCloseOperation ( JFrame . EXIT_ON_CLOSE );
this . setSize ( 240 , 120 );
mainPanel = new javax . swing . JPanel ();
lConta = new javax . swing . JLabel ();
iniciar = new javax . swing . JButton ();
pausar = new javax . swing . JButton ();
zerar = new javax . swing . JButton ();
mainPanel . setName ( "mainPanel" );
lConta . setText ( "00:00:00" );
lConta . setName ( "lConta" );
iniciar . setText ( "Iniciar" );
iniciar . setName ( "iniciar" );
iniciar . addActionListener ( new java . awt . event . ActionListener () {
public void actionPerformed ( java . awt . event . ActionEvent evt ) {
iniciarActionPerformed ( evt );
}
});
pausar . setText ( "Pausar/Continuar" );
pausar . setName ( "pausar/Continuar" );
pausar . addActionListener ( new java . awt . event . ActionListener () {
public void actionPerformed ( java . awt . event . ActionEvent evt ) {
pausarActionPerformed ( evt );
}
});
zerar . setText ( "Zerar" );
zerar . setName ( "zerar" );
zerar . addActionListener ( new java . awt . event . ActionListener () {
public void actionPerformed ( java . awt . event . ActionEvent evt ) {
zerarActionPerformed ( evt );
}
});
javax . swing . GroupLayout mainPanelLayout = new javax . swing . GroupLayout ( mainPanel );
mainPanel . setLayout ( mainPanelLayout );
mainPanelLayout . setHorizontalGroup (
mainPanelLayout . createParallelGroup ( javax . swing . GroupLayout . Alignment . LEADING )
. addGroup ( mainPanelLayout . createSequentialGroup ()
. addContainerGap ()
. addGroup ( mainPanelLayout . createParallelGroup ( javax . swing . GroupLayout . Alignment . LEADING )
. addComponent ( lConta , javax . swing . GroupLayout . DEFAULT_SIZE , 273 , Short . MAX_VALUE )
. addGroup ( mainPanelLayout . createSequentialGroup ()
. addComponent ( iniciar )
. addPreferredGap ( javax . swing . LayoutStyle . ComponentPlacement . RELATED , 40 , Short . MAX_VALUE )
. addComponent ( pausar )
. addGap ( 32 , 32 , 32 )
. addComponent ( zerar )))
. addContainerGap ())
);
mainPanelLayout . setVerticalGroup (
mainPanelLayout . createParallelGroup ( javax . swing . GroupLayout . Alignment . LEADING )
. addGroup ( mainPanelLayout . createSequentialGroup ()
. addContainerGap ()
. addComponent ( lConta )
. addPreferredGap ( javax . swing . LayoutStyle . ComponentPlacement . RELATED )
. addGroup ( mainPanelLayout . createParallelGroup ( javax . swing . GroupLayout . Alignment . BASELINE )
. addComponent ( iniciar )
. addComponent ( zerar )
. addComponent ( pausar ))
. addContainerGap ( javax . swing . GroupLayout . DEFAULT_SIZE , Short . MAX_VALUE ))
);
this . add ( mainPanel );
this . setVisible ( true );
}
private void iniciarActionPerformed ( ActionEvent evt ) {
contador = true ;
iniciar . setEnabled ( false );
pausar . setEnabled ( true );
zerar . setEnabled ( false );
}
private void pausarActionPerformed ( ActionEvent evt ) {
contador = false;
iniciar . setEnabled ( true );
pausar . setEnabled ( true );
zerar . setEnabled ( true );
}
private void zerarActionPerformed ( ActionEvent evt ) {
contador = false ;
lConta.setText("00:00:00") ;
zerado = true ;
lConta.revalidate() ;
iniciar.setEnabled(true) ;
pausar.setEnabled(false) ;
}
public static boolean isContador () {
return contador ;
}
public static boolean isZerado () {
return zerado ;
}
public static void setZerado ( boolean zero ) {
zerado = zero ;
}
}
Wagner9 9 de mar. de 2016
Olá amigo, segue o código:
package projeto_cronometro2;
import java.awt.event.ActionEvent ;
import javax.swing.JButton ;
import javax.swing.JFrame ;
import javax.swing.JLabel ;
import javax.swing.JPanel ;
public class PrincipalTela extends JFrame {
private static final long serialVersionUID = 1L ;
private static boolean contador = false ;
private static boolean zerado = false ;
private static boolean pausa = false ;
private JButton iniciar ;
private static JLabel lConta ;
private JPanel mainPanel ;
private JButton pausar ;
private JButton zerar ;
public static void main ( String [] args ) {
new PrincipalTela (). montaTela ();
Cronometro cont = new Cronometro ( lConta );
cont . start ();
}
private void montaTela (){
this . setTitle ( "Cronometro" );
this . setDefaultCloseOperation ( JFrame . EXIT_ON_CLOSE );
this . setSize ( 240 , 120 );
mainPanel = new javax . swing . JPanel ();
lConta = new javax . swing . JLabel ();
iniciar = new javax . swing . JButton ();
pausar = new javax . swing . JButton ();
zerar = new javax . swing . JButton ();
mainPanel . setName ( "mainPanel" );
lConta . setText ( "00:00:00" );
lConta . setName ( "lConta" );
iniciar . setText ( "Iniciar" );
iniciar . setName ( "iniciar" );
iniciar . addActionListener ( new java . awt . event . ActionListener () {
public void actionPerformed ( java . awt . event . ActionEvent evt ) {
iniciarActionPerformed ( evt );
}
});
pausar . setText ( "Pausar/Continuar" );
pausar . setName ( "pausar/Continuar" );
pausar . addActionListener ( new java . awt . event . ActionListener () {
public void actionPerformed ( java . awt . event . ActionEvent evt ) {
pausarActionPerformed ( evt );
}
});
zerar . setText ( "Zerar" );
zerar . setName ( "zerar" );
zerar . addActionListener ( new java . awt . event . ActionListener () {
public void actionPerformed ( java . awt . event . ActionEvent evt ) {
zerarActionPerformed ( evt );
}
});
javax . swing . GroupLayout mainPanelLayout = new javax . swing . GroupLayout ( mainPanel );
mainPanel . setLayout ( mainPanelLayout );
mainPanelLayout . setHorizontalGroup (
mainPanelLayout . createParallelGroup ( javax . swing . GroupLayout . Alignment . LEADING )
. addGroup ( mainPanelLayout . createSequentialGroup ()
. addContainerGap ()
. addGroup ( mainPanelLayout . createParallelGroup ( javax . swing . GroupLayout . Alignment . LEADING )
. addComponent ( lConta , javax . swing . GroupLayout . DEFAULT_SIZE , 273 , Short . MAX_VALUE )
. addGroup ( mainPanelLayout . createSequentialGroup ()
. addComponent ( iniciar )
. addPreferredGap ( javax . swing . LayoutStyle . ComponentPlacement . RELATED , 40 , Short . MAX_VALUE )
. addComponent ( pausar )
. addGap ( 32 , 32 , 32 )
. addComponent ( zerar )))
. addContainerGap ())
);
mainPanelLayout . setVerticalGroup (
mainPanelLayout . createParallelGroup ( javax . swing . GroupLayout . Alignment . LEADING )
. addGroup ( mainPanelLayout . createSequentialGroup ()
. addContainerGap ()
. addComponent ( lConta )
. addPreferredGap ( javax . swing . LayoutStyle . ComponentPlacement . RELATED )
. addGroup ( mainPanelLayout . createParallelGroup ( javax . swing . GroupLayout . Alignment . BASELINE )
. addComponent ( iniciar )
. addComponent ( zerar )
. addComponent ( pausar ))
. addContainerGap ( javax . swing . GroupLayout . DEFAULT_SIZE , Short . MAX_VALUE ))
);
this . add ( mainPanel );
this . setVisible ( true );
}
private void iniciarActionPerformed ( ActionEvent evt ) {
contador = true ;
iniciar . setEnabled ( false );
pausar . setEnabled ( true );
zerar . setEnabled ( false );
}
private void pausarActionPerformed ( ActionEvent evt ) {
contador = false;
iniciar . setEnabled ( true );
pausar . setEnabled ( true );
zerar . setEnabled ( true );
}
private void zerarActionPerformed ( ActionEvent evt ) {
contador = false ;
lConta.setText("00:00:00") ;
zerado = true ;
lConta.revalidate() ;
iniciar.setEnabled(true) ;
pausar.setEnabled(false) ;
}
public static boolean isContador () {
return contador ;
}
public static boolean isZerado () {
return zerado ;
}
public static void setZerado ( boolean zero ) {
zerado = zero ;
}
}
diego12 11 de mar. de 2016
public class Cronometro {
long tempo = 0 ;
Timer timer ;
boolean pausa = true ;
public Cronometro ( Jlabel label ) {
timer = new Timer ();
TimerTask tarefa = new TimerTask () {
@Override
public void run () {
if ( pausa == false ) {
tempo += 1 ;
label . setText ( tempo ); // em segundos;
}
}
};
timer . schedule ( tarefa , 1000l );
}
public void iniciar () {
pausa = false ;
tempo = 0 ;
}
public void pausarContinuar () {
pausa = ! pausa ;
}
public void parar () {
pausa = true ;
tempo = 0 ;
}
}
Depois no jframe é só fazer a chamada dos metodos do cronometro
Pesquisando, vc poderá encontrar um cronometro pronto.