Ir ao conteúdo

Posts recomendados

Postado

Eu estou tentando desenvolver um cronometro , mas não consigo programar o botão de parar, alguém me ajude ? 

 

image.png.5b24182c7d3b51cb69218ab72f4fbf0a.png

 

package teste;

import java.awt.*;
import java.awt.event.*;

public class Cronometro extends WindowAdapter implements ActionListener{
      public Frame janela;
      public Panel painelBotoes;
      public TextField t_horas,t_minutos,t_segundos;
      public Button b_iniciar,b_parar;
      
      public Cronometro(){
          janela = new Frame();
          janela.setTitle("Cronometro");
          janela.setSize(350,500);
          janela.setBackground(new Color(160,160,160));
          janela.setLayout(null);
          janela.addWindowListener(this);
          
          painelBotoes = new Panel();
          painelBotoes.setBackground(new Color(64,128,128));
          painelBotoes.setSize(350,34);
          painelBotoes.setLocation(10,244);
          painelBotoes.setLayout(new FlowLayout(1));
          
          t_minutos = new TextField("00");
          t_minutos.setBounds(160,100,50,19);
          
          t_segundos = new TextField("00");
          t_segundos.setBounds(230,100,50,19);
          
          b_iniciar = new Button("Iniciar");
          b_iniciar.addActionListener(this);
          
          b_parar = new Button("Parar");
          b_parar.addActionListener(this);
                
          painelBotoes.add(b_iniciar);
          painelBotoes.add(b_parar);
          
          janela.add(t_minutos);
          janela.add(t_segundos);
  
          janela.add(painelBotoes);
      }
      public void contarMinutos_Segundos(){
          int minutos = Integer.parseInt(t_minutos.getText());
          int segundos = Integer.parseInt(t_segundos.getText());
          boolean parar = false;
          while(true){
            if(segundos == 60){
                segundos = 00;
                if(minutos < 10){
                    minutos++;
                    t_minutos.setText("0"+minutos);
                }else{
                    minutos++;
                    t_minutos.setText(minutos+"");
                }
            }
            if(segundos < 10){
                t_segundos.setText("0"+segundos);
                segundos++;   
            }else{
                t_segundos.setText(segundos+"");
                segundos++; 
            }
            try{
                Thread.sleep(1000);  // vai parar a cada 1000 milessegundo - [1 segundo == 1000 milessegundos] 
            }catch(Exception e){
                System.out.println("Erro no Cronometro");
            }
            
          }
      }
      
       public void actionPerformed(ActionEvent e){
        if(e.getSource().equals(b_iniciar)){
            this.contarMinutos_Segundos();
        if(e.getSource().equals(b_parar)){
             // botão parar 
        }
        }
       }
        public void windowClosing(WindowEvent e){
            System.exit(0); // Sai do sistema
        }
      public void mostrarPainel(){
         janela.setVisible(true);
         janela.show();
        }
      public static void main(String[] args) {
          Cronometro cronometro = new Cronometro();
          cronometro.mostrarPainel();
    }
}

 

 

Postado

Não sei se funciona mas pelo menos pode ser que te dê uma ideia. Acho que aproveitando o método contarMinutos_Segundos() você pode substituir o void por um boolean. Ficaria mais ou menos assim

public boolean actionPerformed(ActionEvent e) {

        if (e.getSource().equals(b_iniciar)) {
        this.contarMinutos_Segundos() = true;

        else if ((e.getSource().equals(b_parar)) {
        this.contarMinutos_Segundos() = false;

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!