Você está aqui: Java ::: Classes e Componentes ::: JButton

Como posso testar se um JButton está habilitado ou desabilitado?

Quantidade de visualizações: 8525 vezes


Use o método:

public boolean isEnabled()

da classe Component. Este método retorna true se o componente estiver habilitado e false se estiver desabilitado. Veja:
if(btn.isEnabled()){
  // mais código aqui  
}


Link para compartilhar na Internet ou com seus amigos:

Java ::: Desafios e Lista de Exercícios Resolvidos ::: Recursão (Recursividade)

Exercícios Resolvidos de Java - Um método recursivo que calcula o MDC (máximo divisor comum) entre dois números inteiros

Quantidade de visualizações: 8714 vezes
Exercício Resolvido de Java - Um método recursivo que calcula o MDC (máximo divisor comum) entre dois números inteiros

Pergunta/Tarefa:

O máximo divisor comum ou MDC (mdc) entre dois ou mais números inteiros é o maior número inteiro que é fator de tais números. Por exemplo, os divisores comuns de 12 e 18 são 1, 2, 3 e 6, logo mdc(12, 18) = 6. A definição abrange qualquer número de termos, por exemplo mdc(10, 15, 25, 30) = 5.

O cálculo do MDC entre x e y pode ser feito recursivamente da seguinte forma: Se y for igual a 0, então mdc(x, y) = x. Caso contrário, mdc(x, y) = mdc(y, x % y), no qual % é o operador de módulo (restante da divisão inteira).

Escreva um método recursivo que receba dois inteiros e calcule o mdc. Seu método deverá possuir a seguinte assinatura:

public static int mdc(int x, int y){
  // sua implementação aqui
}
Sua saída deverá ser parecida com:

Informe o primeiro inteiro: 12
Informe o segundo inteiro: 18
O MDC dos valores 12 e 18 é 6
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 exercicio;

import java.util.Scanner;

public class Exercicio {
  public static void main(String[] args) {
    // cria um novo objeto da classe Scanner
    Scanner entrada = new Scanner(System.in);
    
    // vamos solicitar dois valores inteiros
    System.out.print("Informe o primeiro inteiro: ");
    // lê o primeiro inteiro
    int a = Integer.parseInt(entrada.nextLine());
    // solicita o segundo inteiro
    System.out.print("Informe o segundo inteiro: ");
    // lê o segundo inteiro
    int b = Integer.parseInt(entrada.nextLine());
    
    // mostra o resultado
    System.out.print("O MDC dos valores " + a + " e " +
      b + " é " + mdc(a, b));
    System.out.println("\n");
  }
  
  // método recursivo que calcula o mdc de dois inteiros
  public static int mdc(int x, int y){
    // a recursividade é interrompida quando y for igual a 0
    if(y == 0){
      return x;
    }
    else{
      return mdc(y, x % y); // efetua uma nova chamada recursiva
    }
  }
}



Java ::: Coleções (Collections) ::: HashSet

Java Collections - Como usar a classe HashSet em seus programas Java

Quantidade de visualizações: 5097 vezes
A classe HashSet, no pacote java.util, é uma classe concreta que implementa a interface Set. Na maioria das vezes nós usamos objetos desta classe para armazenar elementos não duplicados (ainda que o elemento null seja permitido). Veja sua posição na hierarquia de classes da plataforma Java:

java.lang.Object
  java.util.AbstractCollection<E>
    java.util.AbstractSet<E>
      java.util.HashSet<E>
Esta classe implementa as interfaces Serializable, Cloneable, Iterable<E>, Collection<E> e Set<E> e suas sub-classes diretas são JobStateReasons, LinkedHashSet.

Veja um trecho de código no qual inserimos cinco elementos do tipo String em um HashSet e os listamos em seguida:

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

package estudos;

import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;

public class Estudos{
  public static void main(String[] args) {
    // vamos criar uma instância da classe HashSet
    Set<String> conjunto = new HashSet<>();
    
    // vamos inserir cinco Strings neste conjunto
    conjunto.add(null); // o elemento null é permitido
    conjunto.add("Marcos");
    conjunto.add("Osmar");
    conjunto.add("Osmar"); // elemento duplicado aqui
    conjunto.add("Fernanda");
    
    // vamos exibir os elementos
    Iterator iterator = conjunto.iterator();
    while(iterator.hasNext()){
      System.out.println(iterator.next());
    }
  }
}

Ao executarmos este código teremos o seguinte resultado:

null
Fernanda
Marcos
Abel
Osmar
Veja que, embora tenhamos inserido a string "Osmar" duas vezes, o HashSet a armazenou somente uma vez. Outro detalhe é que esta classe raramente retornará os elementos na ordem em que eles foram inseridos.


Java ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes)

Exercício Resolvido de Java - Como rotacionar os elementos de um vetor de inteiros n vezes para a direita - Solução usando vetor temporário

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

Dado o vetor:

// vamos criar um vetor de inteiros
int valores[] = {1, 6, 9, 3, 7, 8, 5, 2};
Escreva um método Java que rotaciona este vetor para a direita um determinado número de casas. A função deverá receber o array e um inteiro indicando o número de rotações, ou seja, o número de vezes que os elementos do vetor serão movimentados para a direita.

Importante: a solução que apresentamos usa um array adicional para resolver o desafio. Fique à vontade para usar força-bruta ou outra abordagem que achar mais conveniente.

Sua saída deverá ser parecida com:

Array na ordem original:
1 6 9 3 7 8 5 2 

Rotação do vetor no passo 1 do primeiro laço:
8 0 0 0 0 0 0 0 

Rotação do vetor no passo 2 do primeiro laço:
8 5 0 0 0 0 0 0 

Rotação do vetor no passo 3 do primeiro laço:
8 5 2 0 0 0 0 0 

Rotação do vetor no passo 1 do segundo laço:
8 5 2 1 0 0 0 0 

Rotação do vetor no passo 2 do segundo laço:
8 5 2 1 6 0 0 0 

Rotação do vetor no passo 3 do segundo laço:
8 5 2 1 6 9 0 0 

Rotação do vetor no passo 4 do segundo laço:
8 5 2 1 6 9 3 0 

Rotação do vetor no passo 5 do segundo laço:
8 5 2 1 6 9 3 7 

Array depois de rotacionar 3 vezes:
8 5 2 1 6 9 3 7
Resposta/Solução:

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

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

package estudos;

public class Estudos {
  public static void main(String[] args) {
    // vamos criar um vetor de inteiros
    int valores[] = {1, 6, 9, 3, 7, 8, 5, 2};
    
    // mostramos o array na ordem original
    System.out.println("Array na ordem original:");
    exibirVetor(valores);
    
    // vamos rotacionar o array 3 casas para a direita
    valores = rotacionarArray(valores, 3);
    
    // e mostramos o resultado
    System.out.println("Array depois de rotacionar 3 vezes:");
    exibirVetor(valores);
  }
  
  // método usado para exibir o array
  public static void exibirVetor(int []vetor){
    // percorremos cada elemento do vetor
    for (int i = 0; i < vetor.length; i++) {
      System.out.print(vetor[i] + " ");
    }
    System.out.println("\n");
  }
  
  // método que recebe um vetor de inteiros e o rotaciona um
  // determinado número de vezes
  public static int[] rotacionarArray(int[] vetor, int n) {
    // vamos obter a quantidade de elementos no vetor    
    int quant = vetor.length;
    
    // o número de rotações é maior que a quantidade de
    // elementos no vetor? Se for nós ajustamos o número
    // de rotações usando o operador de módulo
    if(n > quant){
      n = n % quant;
    }
    
    // criamos um vetor temporário
    int[] resultado = new int[quant];
 
    // o primeiro laço movimenta os elementos a partir
    // do valor de n
    for(int i = 0; i < n; i++){
      resultado[i] = vetor[quant - n + i];
      // mostramos o progresso
      System.out.println("Rotação do vetor no passo " + (i + 1) + 
        " do primeiro laço:");
      exibirVetor(resultado);
    }
 
    // ajustamos o índice para o primeiro elemento do vetor
    int indice = 0;
    for(int i = n; i < quant; i++){
      resultado[i] = vetor[indice];
      // mostramos o progresso
      System.out.println("Rotação do vetor no passo " + (indice + 1) + 
        " do segundo laço:");
      exibirVetor(resultado);
      indice++; // incrementa o índice
    }
    
    // retorna o vetor rotacionado
    return resultado;
  }
}

A solução que apresentamos aqui usa um vetor temporário, isto é, um array adicional, para melhorar a perfomance. Em outras dicas do site nós apresentamos uma solução para este desafio usando força-bruta. A força-bruta não é a melhor abordagem, mas pode ser mais fácil de ser entendida por iniciantes em programação.


Mais Desafios de Programação e 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: C
6º lugar: Delphi
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



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