Você está aqui: Java ::: Dicas & Truques ::: Timers

Java Swing Exemplo completo: Como usar um timer para atualizar a hora atual em uma JLabel

Quantidade de visualizações: 16922 vezes
Este exemplo mostra como criar uma janela JFrame contendo dois botões JButton, um label JLabel e um timer (java.awt.Timer). Quando o timer dispara, o texto da label é atualizado para refletir a hora atual.

Veja o resultado na imagem abaixo:



E aqui está o código Java Swing completo para o exemplo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

package arquivodecodigos;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.Calendar;
import java.text.DecimalFormat;
 
public class Estudos extends JFrame{
  JLabel hora;  
  Timer timer; 
  DecimalFormat formato;
 
  public Estudos() {
    super("Usando timers em Java");
     
    Container c = getContentPane();
    c.setLayout(new FlowLayout(FlowLayout.LEFT));
 
    formato = new DecimalFormat("00"); 
 
    // Cria o timer
    timer = new Timer(1000, new ActionListener(){
      @Override
      public void actionPerformed(ActionEvent e){
        atualizarHoras();
      }
    });
 
    // Cria um botão com o texto "Iniciar"
    JButton iniciar = new JButton("Iniciar");
    iniciar.addActionListener(
      new ActionListener(){
        @Override
        public void actionPerformed(ActionEvent e){
          timer.start(); // inicia o timer
        }
      }
    );    
 
    // Cria um botão com o texto "Parar"
    JButton parar = new JButton("Parar");
    parar.addActionListener(
      new ActionListener(){
        @Override
        public void actionPerformed(ActionEvent e){
          timer.stop(); // pára o timer
        }
      }
    );
     
    // JLabel que exibirá a hora atual
    hora = new JLabel("00:00:00");
 
    // Adiciona os botões à janela
    c.add(iniciar);
    c.add(parar);
 
    // adiciona o label à janela
    c.add(hora);  
 
    setSize(350, 250);
    setVisible(true);
  }
   
  private void atualizarHoras(){
    // Cria uma instância de Calendar
    Calendar agora = Calendar.getInstance();    
 
    // horas, minutos e segundos
    int horas = agora.get(Calendar.HOUR);  
    int minutos = agora.get(Calendar.MINUTE);
    int segundos = agora.get(Calendar.SECOND);
    hora.setText(formato.format(horas) + ":" + 
      formato.format(minutos) + ":" + 
      formato.format(segundos));
  }
 
  public static void main(String args[]){
    Estudos app = new Estudos();
    app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  }
}


Link para compartilhar na Internet ou com seus amigos:

Java ::: Desafios e Lista de Exercícios Resolvidos ::: Laços

Exercício Resolvido de Java - Usando o laço while para pedir ao usuário que tente acertar um número aleatório entre 0 e 10 (incluindo) e mostrar a quantidade de tentativas feitas

Quantidade de visualizações: 2138 vezes
Pergunta/Tarefa:

Escreva um programa Java que gera um número aleatório (randômico) entre 0 e 10 (incluindo estes dois valores) e peça ao usuário para adivinhá-lo. Use um laço while para registrar as tentativas feitas e, a cada tentativa, dê dicas informando se o número gerado é maior ou menor que a tentativa feita. Finalmente mostre a quantidade de tentativas feitas até que o número fosse acertado.

Sua saída deverá ser parecida com a mostrada abaixo:



Resposta/Solução:

Veja a resolução comentada deste exercício usando Java console:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

package exercicios;

import java.util.Scanner;

public class Exercicios {
  public static void main(String[] args) {
    // vamos fazer a leitura usando a classe Scanner
    Scanner entrada = new Scanner(System.in);
      
    // declaração das variáveis
    int tentativas = 0, numeroLido;
    boolean acertou = false;
    // vamos gerar um número aleatório entre 0 e 10
    int numero = (int)(Math.random() * 11);
    
    // um laço while que repetirá até que o número seja acertado
    while(!acertou){
      System.out.print("Informe um número de 0 a 10: ");
      numeroLido = Integer.parseInt(entrada.nextLine());
      tentativas++;
      
      if(numeroLido == numero){ // acertou?
        System.out.println("Parabéns! Você acertou em " + tentativas + " tentativas.");
        acertou = true;
      }
      else if(numeroLido < numero){ // o número informado é menor que o número gerado
        System.out.println("Errou! Tente um número maior.");  
      }
      else{ // o número informado é maior que o número gerado
        System.out.println("Errou! Tente um número menor.");  
      }
    }
  }
}



Java ::: Desafios e Lista de Exercícios Resolvidos ::: Java Básico

Exercícios Resolvidos de Java - Um programa que lê três números e os classifica e exibe em ordem crescente

Quantidade de visualizações: 6692 vezes
Pergunta/Tarefa:

Escreva um programa Java que pede ao usuário três números inteiros. Em seguida, ordene os três valores em ordem crescente e os exiba.

Sua saída deverá ser parecida com:

Informe o primeiro valor: 7
Informe o segundo valor: 4
Informe o terceiro valor: 6
Os números ordenados em ordem crescente são: 
4  6  7
Resposta/Solução:

Veja a resolução comentada deste exercício usando Java console:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

package estudos;

import java.util.Scanner;

public class Estudos {
  public static void main(String[] args) {
    Scanner entrada = new Scanner(System.in);  
    
    // vamos pedir que o usuário informe três números inteiros
    System.out.print("Informe o primeiro valor: ");
    int num1 = Integer.parseInt(entrada.nextLine());
    System.out.print("Informe o segundo valor: ");
    int num2 = Integer.parseInt(entrada.nextLine());
    System.out.print("Informe o terceiro valor: ");
    int num3 = Integer.parseInt(entrada.nextLine());
    
    // o primeiro número é maior que o segundo? vamos trocá-los
    if(num1 > num2){
      int temp = num1;
      num1 = num2;
      num2 = temp;
    }

    // o segundo número é maior que o terceiro? vamos trocá-los
    if(num2 > num3){
      int temp = num2;
      num2 = num3;
      num3 = temp;
    }

    // depois da segunda troca o número 1 é novamente maior que o número 2?
    if(num1 > num2){
      int temp = num1;
      num1 = num2;
      num2 = temp;
    }
    
    // mostra o resultado
    System.out.println("Os números ordenados em ordem crescente são: ");
    System.out.println(num1 + "  " + num2 + "  " + num3);
    
    System.out.println("\n");
  }
}



Java ::: Dicas & Truques ::: Threads

Threads em Java - Como definir as prioridades das threads Java

Quantidade de visualizações: 12298 vezes
Quando estamos trabalhando com threads em Java, precisamos estar cientes de que cada thread possui uma prioridade de execução. É por meio da prioridade de cada uma que o gerenciador de threads decidirá qual thread deverá ser executada primeiro.

Por padrão, todas as threads possuem prioridade NORM_PRIORITY. Esta é uma constante que possui o valor 5 e está declarada na classe Thread. Além disso, cada thread herda automaticamente a prioridade da thread que a criou.

As constantes MAX_PRIORITY (prioridade máxima), MIN_PRIORITY (prioridade mínima) e NORM_PRIORITY (prioridade normal) são usadas para definir as prioridades das threads Java. Veja um exemplo no qual temos duas threads. A primeira possui a prioridade máxima enquanto a segunda possui a prioridade mínima:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

// criamos uma classe que servirá como thread
class MinhaThread extends Thread{
  private String nome;  

  public MinhaThread(String nome){
    this.nome = nome;
  }   

  public void run(){
    for(int i = 1; i <= 20; i++){
      System.out.println(nome + ": " + i);
    }
  }
}

public class Estudos{
  public static void main(String[] args){
    // vamos criar duas threads
    MinhaThread t1 = new MinhaThread("Thread 1");
    t1.setPriority(Thread.MAX_PRIORITY); // prioridade máxima
    t1.start();    

    MinhaThread t2 = new MinhaThread("Thread 2");
    t2.setPriority(Thread.MIN_PRIORITY); // prioridade mínima
    t2.start();
  }
}

Execute este exemplo e veja como a segunda thread só é executada quando a primeira finaliza. Remova as linhas que definem a prioridade e note como o tempo de cada thread é novamente fracionado. É importante ter em mente que aqui estamos falando de um ambiente de processador único. Em ambientes de múltiplos processadores o comportamento pode ser diferente do abordado na dica.

Não devemos confiar em prioridades de threads quando o objetivo é aguardar a finalização de uma thread e só então permitir o processamento das instruções contidas no método run() de outra thread. Para estes casos o recomendável é usar alguma forma para sinalizar as demais threads de que a thread atual concluiu sua tarefa.


Vamos testar seus conhecimentos em Hidrologia

Qual é a maior bacia hidrográfica em nível mundial?

A) Bacia Amazônica.

B) Bacia Atlântica.

C) Bacia do Mississípi.

D) Bacia da Prata.

E) Bacia do Congo.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Hidrologia

Considerando as características da Bacia do Rio São Francisco, marque a alternativa correta.

A) Apresenta somente rios perenes na sua área de abrangência.

B) Está localizada somente na Região Nordeste do Brasil.

C) A sua principal usina hidrelétrica é a de Furnas.

D) Apresenta como regimes formadores o pluvial e o nival.

E) Possui grande importância econômica para a população local.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Ética e Legislação Profissional

Introdução à Ética

Aristóteles viveu entre grandes personalidades, já que foi discípulo de Platão e mestre de Alexandre, O Grande. Suas reflexões giravam em torno da política, da ética e da metafísica, e foram tão importantes que na atualidade influenciam campos científicos diversos, da política à biologia, passando, é claro, pela filosofia.

Considerando essas informações, analise as afirmativas a seguir.

I - Aristóteles foi o primeiro filósofo a elaborar tratados sistemáticos de ética, como a Ética a Nicômaco.

II - Aristóteles investiga o que é a felicidade, e ela deve ser um bem perfeito que se busca por si mesmo, e não como meio para outra coisa.

III - Ele partilhava da ideia de que uma pessoa virtuosa precisa viver numa sociedade regida por Deus, porque a ética não pode desvincular-se da religião.

Está correto apenas o que se afirma em:

A) I e II, apenas.

B) III, apenas.

C) I, apenas.

D) II, apenas.

E) II e III, apenas.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Hidrologia

Considerando as características da Bacia do Rio São Francisco, marque a alternativa correta.

A) Apresenta somente rios perenes na sua área de abrangência.

B) Está localizada somente na Região Nordeste do Brasil.

C) A sua principal usina hidrelétrica é a de Furnas.

D) Apresenta como regimes formadores o pluvial e o nival.

E) Possui grande importância econômica para a população local.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Python

Qual instrução é usada para interromper um laço em Python?

A) return

B) catch

C) break

D) continue

E) exit
Verificar Resposta Estudar Cards Todas as Questões

Desafios, Exercícios e Algoritmos Resolvidos de Java

Veja mais Dicas e truques de Java

Dicas e truques de outras linguagens

Códigos Fonte

Programa de Gestão Financeira Controle de Contas a Pagar e a Receber com Cadastro de Clientes e FornecedoresSoftware de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento
Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidadesControle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades
Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: Delphi
6º lugar: C
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2024 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 23 usuários muito felizes estudando em nosso site.