Ofereço ajuda em Java, C/C++, Python, C#, LISP, AutoLisp, AutoCAD
+55 (062) 98553-6711
Ofereço ajuda em PHP, Python, C#, JavaScript, Laravel, Google Ads e SEO
+55 (062) 98243-1195

Você está aqui: Java ::: Dicas & Truques ::: Mouse e Teclado

Verificando se a tecla Ctrl está pressionada durante um evento do teclado

Quantidade de visualizações: 10366 vezes
/*
  Este exemplo mostra como verificar se a tecla
  Ctrl está pressionada durante um evento do teclado.

  O teste pode ser feito nos três eventos: keyPressed,
  keyReleased e keyTyped.
*/

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class Estudos extends JFrame implements KeyListener{
  private JTextArea textArea;  

  public Estudos(){
    super("Eventos do Mouse e Teclado");
    Container c = getContentPane();
    FlowLayout layout = new FlowLayout(FlowLayout.LEFT);
    c.setLayout(layout);
    textArea = new JTextArea(100, 150);
    textArea.setEnabled(false);    
    textArea.setDisabledTextColor(Color.BLACK); 
    c.add(textArea);

    addKeyListener(this);

    setSize(350, 250);
    setVisible(true);
  }
    
  public void keyPressed(KeyEvent e){
    //    
  }
    
  public void keyReleased(KeyEvent e){
    // sem implementação
  }

  public void keyTyped(KeyEvent e){
    if(e.isControlDown())
      textArea.setText("A tecla Ctrl está pressionada");
    else
      textArea.setText("A tecla Ctrl não está pressionada."); 
  }   
  
  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 ::: Arrays e Matrix (Vetores e Matrizes)

Exercícios Resolvidos de Java - Como resolver o problema da Subsequência de Soma Máxima em Java usando o Algorítmo de Kadane

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

O problema do Subvetor Contíguo de Soma Máxima, ou Subarray ou Subsequência de Soma Máxima é um dos algorítmos mais populares na programação dinâmica. Este problema envolve encontrar um subvetor, ou seja, um sub-array contíguo de maior soma possível. Por contíguo entendemos que os elementos da subsequência deverão estar consecutivos no vetor original.

O Algorítmo de Kadane, inventado por Jay Kadane em 1977, é um dos favoritos para a resolução deste problema, e deverá ser aplicado na resolução deste exercício.

Dado o vetor [-2, 1, -3, 4, -1, 2, 1, -5, 4], encontre a soma máxima da subsequência contígua. Não é exigido mostrar os elementos da sub-sequência, apenas o valor da soma máxima.

Sua saída deverá ser parecida com:

A soma maxima é: 6
Resposta/Solução:

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

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

package estudos;

public class Estudos {
  public static void main(String[] args) {
    // vamos criar um array com 9 elementos
    int valores[] = {-2, 1, -3, 4, -1, 2, 1, -5, 4};
    
    // agora usamos o algoritmo de Kadane para encontrar
    // a maior soma consecutiva
    int soma_maxima = kadane(valores);
    System.out.println("A soma maxima é: " + soma_maxima);
  }
  
  // método que recebe um array e usa o algoritmo de Kadane
  // para retornar a maior soma consecutiva
  public static int kadane(int vetor[]){
    // ajustamos max_atual para 0 e max_total para -1 
    int max_atual = 0, max_total = -1;
    
    // um laço for que percorre todos os elementos do
    // vetor, do primeiro até o último
    for(int i = 0; i < vetor.length; i++){
      // max_atual recebe ele mesmo mais o valor
      // do elemento no índice i
      max_atual = max_atual + vetor[i];
      
      // se max_atual for negativo nós o ajustamos
      // para zero novamente
      if(max_atual < 0){
        max_atual = 0;
      }
      
      // se max_atual for maior que max_total então
      // max_total recebe o valor de max_atual
      if(max_atual > max_total){
        max_total = max_atual;
      }
    }
    
    // e retornamos a soma máxima
    return max_total;
  }
}



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

Como retornar o índice da última ocorrência de um elemento em uma ArrayList do Java usando a função lastIndexOf()

Quantidade de visualizações: 9284 vezes
Em algumas situações nós gostaríamos de pesquisar um valor em um ArrayList e retornar o índice de sua última aparição, para o caso desse elemento estar contido mais de uma vez na coleção. Para isso nós podemos usar o método lastIndexOf().

Se o elemento pesquisado não estiver na ArrayList, o valor -1 será retornado.

Veja o código completo para o exemplo:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

package estudos;

import java.util.ArrayList;

public class Estudos{
  public static void main(String[] args){
    // cria uma ArrayList que conterá strings
    ArrayList<String> nomes = new ArrayList<String>();
    
    // adiciona itens na lista
    nomes.add("Carlos");
    nomes.add("Maria");
    nomes.add("Fernanda");
    nomes.add("Osmar");
    nomes.add("Maria");    
	
    // obtém o índice da última ocorrência do
    // nome "Maria"
    int indice = nomes.lastIndexOf("Maria");

    System.out.println("O último índice do nome pesquisado é: " 
      + indice); 

    System.exit(0);
  }
}

Ao executarmos este código Java nós teremos o seguinte resultado:

O último índice do nome pesquisado é: 4


Java ::: Dicas & Truques ::: Formatação de datas, strings e números

Java para iniciantes - Como formatar moeda usando a classe NumberFormat da linguagem Java

Quantidade de visualizações: 19573 vezes
Este exemplo mostra como formatar moeda usando o método getCurrencyInstance() da classe NumberFormat. Note que, nesse exemplo, nós formatamos um valor double para a moeda brasileira em 2021, a saber, o real.

Veja o código completo para a dica:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

package arquivodecodigos;

import java.text.*;
 
public class Estudos{
  public static void main(String[] args){
    double valor = 1234567.89;
    System.out.println("Sem formatação: " + valor);
    NumberFormat nf = NumberFormat.getCurrencyInstance();
    String valorFormatado = nf.format(valor);
    System.out.println("Formatado: " + valorFormatado);   
  }
}

Ao executar este código Java nós teremos o seguinte resultado:

Sem formatação: 1234567.89
Formatado: R$ 1.234.567,89


Java ::: Reflection (introspecção) e RTI (Runtime Type Information) ::: Passos Iniciais

Saiba o que é Reflexão (Reflection) em Java - Como usar Reflexão (Reflection) na linguagem Java - Revisado

Quantidade de visualizações: 18348 vezes
Reflection (ou Reflexão), também conhecida como RTI (Runtime Type Information) em algumas linguagens, é um mecanismo para descobrir dados a respeito de um programa em tempo de execução. Reflection em Java nos permite descobrir informações sobre atributos ou membros (campos), métodos e construtores de classes. Podemos também operar nos campos e métodos que descobrimos.

A Reflection permite o que é normalmente chamada de programação dinâmica em Java.

A Reflection em Java é conseguida usando a Java Reflection API. Esta API consiste de classes nos pacotes java.lang e java.lang.reflect.

Antes de prosseguirmos, veja um exemplo de como podemos listar todos os métodos públicos da classe Object:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

package arquivodecodigos;

import java.lang.reflect.*;
 
public class Estudos{
  public static void main(String args[]){
    // vamos carregar a classe Object
    try{
      Class c = Class.forName("java.lang.Object");
 
      // obtém os nomes dos métodos
      Method[] metodos = c.getMethods(); 
 
      // exibe o nome de cada método
      for(int i = 0; i < metodos.length; i++){
        System.out.println(metodos[i].getName()); 
      }
    }
    catch(ClassNotFoundException e){
      System.out.println(e.getMessage()); 
    }
 
    System.exit(0);
  }
} 

Ao executarmos este código nós teremos o seguinte resultado:

wait
wait
wait
equals
toString
hashCode
getClass
notify
notifyAll

Eis uma lista das coisas que podemos fazer com a Java Reflection API:

1) Determinar a classe de um objeto;
2) Obter informações sobre os modificadores, campos (atributos), métodos, construtores e superclasses de uma classe;
3) Descobrir quais constantes e declarações de métodos pertencem a uma interface;
4) Criar uma instância de uma classe cujo nome não sabemos até o tempo de execução;
5) Obter e definir o valor do campo de um objeto;
6) Invocar um método em um objeto;
7) Criar um novo array, cujo tamanho e tipo de dados só saberemos em tempo de execução.

A Java Reflection API é geralmente usada para criar ferramentas de desenvolvimento tais como debuggers, class browsers e construtores de GUI. Geralmente, neste tipo de ferramentas, precisamos interagir como classes, objetos, métodos e campos, e não sabemos quais em tempo de compilação. Assim, a aplicação deve, dinamicamente, encontrar e acessar estes itens.

Esta dica foi revisada e testada no Java 8.


Java ::: Classes e Componentes ::: JComponent

Java Avançado - Como verificar se uma classe herda de JComponent

Quantidade de visualizações: 8601 vezes
Nesta dica mostrarei como podemos tirar proveito dos métodos getClass(), getSuperclass() e getName() da classe Class para verificarmos se uma determinada classe herda da classe JComponent.

Embora este exemplo busque relacionar controles do Java Swing, a técnica usada pode ser aplicada em qualquer classe da linguagem Java.

Veja o código completo:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

package arquivodecodigos;

import javax.swing.*;
 
public class Estudos{
  public static void main(String args[]){
    // verifica se JLabel herda de JComponent
    JLabel label = new JLabel("Teste");
    if(herdaJComponent(label)){
      System.out.println("JLabel herda de JComponent");
    }
    else{
      System.out.println(
        "JLabel não herda de JComponent");
    }
 
    // verifica se Timer herda de JComponent
    java.util.Timer timer = new java.util.Timer();
    if(herdaJComponent(timer)){
      System.out.println(
        "java.util.Timer herda de JComponent");
    }
    else{
      System.out.println(
        "java.util.Timer não herda de JComponent");
    }
 
    System.exit(0);
  }
 
  static boolean herdaJComponent(Object obj){
    Class cls = obj.getClass();
    Class superclass = cls.getSuperclass();
    while(superclass != null){
      String className = superclass.getName();
       
      if(className.equals("javax.swing.JComponent")){
        return true;
      }
 
      cls = superclass;
      superclass = cls.getSuperclass();
    }
 
    return false;
  }
}

Ao executarmos este código nós teremos o seguinte resultado:

JLabel herda de JComponent
java.util.Timer não herda de JComponent


Java ::: Dicas & Truques ::: Formulários e Janelas

Java Swing para iniciantes - Como definir ou obter o título de uma janela JFrame

Quantidade de visualizações: 11073 vezes
Nesta dica mostrarei como usar o método setTitle() da classe JFrame para definir o título da janela JFrame. Usaremos também o método getTitle() para obter o título da janela.

Veja o código Java Swing completo para o exemplo:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

import javax.swing.*;
 
public class Estudos extends JFrame{
  public Estudos() {
    setSize(350, 250);
    setVisible(true);
 
    // Define o título da janela    
    setTitle("Controle de Estoque");
 
    // obtém o título da janela
    JOptionPane.showMessageDialog(null, 
      "O título da janela é: " + this.getTitle());
  }
   
  public static void main(String args[]){
    Estudos app = new Estudos();
    app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  }
}

Ao executar este exemplo você verá uma janela JOptionPane com o texto "O título da janela é: Controle de Estoque".


Java ::: Dicas & Truques ::: Strings e Caracteres

Como converter uma string para letras maiúsculas usando o método toUpperCase() da classe String da linguagem Java

Quantidade de visualizações: 2 vezes
Nesta dica eu mostro como podemos usar o método toUpperCase() da classe String para transformar em maiúsculas todas as letras de uma palavra, frase ou texto.

Veja o exemplo abaixo:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

package arquivodecodigos;

public class Estudos{
  public static void main(String[] args){
    String frase = "Programar em Java é bom";
    System.out.println(frase); 
    
    // vamos converter para letras maiúsculas
    frase = frase.toUpperCase();
     
    System.out.println(frase);
     
    System.exit(0);
  }
}  

Ao executarmos este código nós teremos o seguinte resultado:

Programar em Java é bom
PROGRAMAR EM JAVA É BOM


Java ::: Java para Engenharia ::: Unidades de Medida

Como converter Quilograma-Força para Newton em Java - Java para Física

Quantidade de visualizações: 408 vezes
Nesta dica mostrarei como podemos efetuar a conversão de Quilograma-Força para Newton usando Java. Este cálculo é comum quando estamos tentando resolver problemas de Física usando programação.

Antes de continuarmos, vamos revisar estas duas unidades de medida. O Quilograma-Força (kgf) é a unidade de medida de uma força que faz um objeto com uma massa de 1 kg acelerar em um metro por segundo ao quadrado (1 m/s2). O Newton é a unidade utilizada para medir força no Sistema Internacional de Unidades (SI).

Agora vamos à fórmula para transformar Quilograma-Força em Newton. Veja:

\[\text{Newton} = \text{Quilograma-Força} \cdot 9,8 \]

Note que só precisamos multiplicar Quilograma-Força por 9,8 para obtermos o resultado em Newton.

Vamos ver um exemplo? Veja um código Java completo que pede para o usuário informar um valor em Quilograma-Força e o converte para Newton:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

package estudos;

import java.util.Scanner;

public class Estudos {
  public static void main(String[] args) {
    // variáveis usadas na resolução do problema
    double kgf, newton; 

    // para ler a entrada do usuário
    Scanner entrada = new Scanner(System.in);
    
    // vamos ler o valor em Quilograma-Força
    System.out.print("Informe o valor em kgf: ");
    kgf = Double.parseDouble(entrada.nextLine());
    
    // agora vamos fazer a conversão para Newton
    newton = kgf * 9.80665;
    
    // e mostramos o resultado
    System.out.println("O resultado é: " + newton + " N");
  }
}

Ao executarmos este código Java nós teremos o seguinte resultado:

Informe o valor em kgf: 50
O resultado é: 490.3325 N


Vamos testar seus conhecimentos em

Dimensionamento de lajes maciças à flexão

As lajes maciças são armadas em cruz, quando apresentam a relação entre o maior e o menor vão inferior a 2. Nessas situações, a laje pode ser dimensionada a partir de valores preestabelecidos em tabelas como a de Marcus.

Considere a laje maciça armada em cruz apresentada na figura a seguir:



Dados:

Peso específico do concreto = 25kN/m3
Carga do contrapiso + revestimento = 2,00kN/m2
Carga acidental = 2,50kN/m2
Altura da laje (h) = 10cm
Altura útil (d) = 6cm
Cobrimento nominal = 2,5cm
fcd = fck / 1,4 (considerar concreto de 20MPa)
fyd = fyk / 1,15 (considerar aço CA-50)

Assinale a alternativa correta:

A) A altura de 10cm não é suficiente para resistir ao momento máximo atuante, devendo ser empregada, pelo menos, uma altura de 11cm na laje em questão.

B) A altura de 10cm não é suficiente para resistir ao momento máximo atuante, devendo ser empregada, pelo menos, uma altura de 12cm na laje.

C) A altura de 10cm não é suficiente para resistir ao momento máximo atuante, devendo ser empregada, pelo menos, uma altura de 13cm na laje.

D) A altura de 10cm não é suficiente para resistir ao momento máximo atuante, devendo ser empregada, pelo menos, uma altura de 14cm na laje.

E) A altura de 10cm não é suficiente para resistir ao momento máximo atuante, devendo ser empregada, pelo menos, uma altura de 15cm na laje.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Hidrologia

(Udesc 2011) Segundo a Agência Nacional de Energia Elétrica (ANEEL), existem no Brasil oito bacias hidrográficas. Assinale a alternativa correta em relação a essas bacias.

A) As bacias do Paraná e do Uruguai formam a Bacia Platina. Essa última drena somente 5% do território nacional e seu potencial hidrelétrico instalado é pequeno e inexpressivo.

B) A Bacia do Rio São Francisco é a segunda maior bacia brasileira e seu rio principal é totalmente navegável.

C) A maior bacia é a do Rio Amazonas, que recebe afluentes dos dois lados e possui o maior volume de água do planeta.

D) A Bacia do Rio Tocantins recebe seus dois principais afluentes: o Araguaia e o Tietê. Possui a segunda maior usina do país, mas seu potencial hidrelétrico é o menor de todas as bacias hidrográficas brasileiras.

E) A Bacia do Atlântico Norte/Nordeste é a terceira maior bacia hidrográfica do Brasil. Seus rios principais são o Madeira e o Juruá.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Engenharia Civil - Estruturas de Aço e Madeira

Evolução das estruturas

A alvenaria é das mais antigas técnicas de construção. É também das mais ricas e variadas. Assinale abaixo a opção que não corresponde às "unidades de alvenaria", ou seja, às peças que não constituem a formação da alvenaria:

Selecione a resposta:

A) Tijolos cerâmicos maciços.

B) Blocos de pedra.

C) Blocos de concreto.

D) Tijolos cerâmicos vazados.

E) Peças de madeira.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em

Segurança e Estados Limites Ações nas Estruturas de Concreto Armado

Ações podem ser definidas como as causas que provocam esforços ou deformações nas estruturas. E, para aplicação nas análises estruturas, devem ser realizadas com cuidado pelos profissionais, uma vez que a classificação das ações definirá a sua relevância em dada combinação.

Com base na classificação das ações, assinale a alternativa correta.

A) O peso próprio dos elementos estruturais é considerado uma ação permanente direta, e o peso próprio dos revestimentos, uma ação permanente indireta.

B) A mobília e a circulação de pessoas em um edifício residencial podem ser consideradas ações permanentes, pois sempre vão ocorrer sobre a estrutura.

C) Variações de temperatura podem ser consideradas ações variáveis sobre a estrutura.

D) A ação do vento em edifícios altos pode ser considerada uma ação excepcional, já que seu carregamento atinge valores mais importantes.

E) A ação de enchentes é considerada uma ação variável, já que ocorre, normalmente, somente em determinadas épocas do ano.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Java

Analise o seguinte código Java

int a = 3 / 0;
System.out.println(a);

Qual é o resultado de sua execução?

A) Infinity

B) NaN

C) Uma exceção java.lang.ArithmeticException: / by zero

D) 0
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

E-Books em PDF

E-Book 650 Dicas, Truques e Exercícios Resolvidos de Python - PDF com 1.200 páginas
Domine lógica de programação e a linguagem Python com o nosso E-Book 650 Dicas, Truques e Exercícios Exercícios de Python, para você estudar onde e quando quiser.

Este e-book contém dicas, truques e exercícios resolvidos abrangendo os tópicos: Python básico, matemática e estatística, banco de dados, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book
E-Book 350 Exercícios Resolvidos de Java - PDF com 500 páginas
Domine lógica de programação e a linguagem Java com o nosso E-Book 350 Exercícios Exercícios de Java, para você estudar onde e quando quiser.

Este e-book contém exercícios resolvidos abrangendo os tópicos: Java básico, matemática e estatística, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book

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á 29 usuários muito felizes estudando em nosso site.