Você está aqui: Cards de AutoCAD Civil 3D |
||
|
||
|
|
||
Java ::: Pacote java.awt.event ::: KeyEvent |
Java Swing - Como obter o código da tecla pressionada usando o método getKeyCode() da classe KeyEvent do JavaQuantidade de visualizações: 4788 vezes |
|
O método getKeyCode() da classe KeyEvent é usado quando queremos obter o código da tecla pressionada durante um evento KEY_PRESSED ou KEY_RELEASED. Para o evento KEY_TYPED, o keyCode é VK_UNDEFINED. Veja um trecho de código no qual usamos o método getKeyCode() para obter e informar o código da tecla pressionada durante um evento keyPressed:
package estudos;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
public class Janela extends JFrame implements KeyListener{
public Janela(){
super("Eventos do Teclado");
Container c = getContentPane();
FlowLayout layout = new FlowLayout(FlowLayout.LEFT);
c.setLayout(layout);
// vamos adicionar o objeto listener
addKeyListener(this);
setSize(350, 250);
setVisible(true);
}
@Override
public void keyPressed(KeyEvent e){
// vamos obter o código da tecla pressionada
int codigo = e.getKeyCode();
JOptionPane.showMessageDialog(null, "O código da tecla pressionada é: " + codigo);
}
@Override
public void keyReleased(KeyEvent e){
// sem implementação
}
@Override
public void keyTyped(KeyEvent e){
// sem implementação
}
public static void main(String args[]){
Janela j = new Janela();
j.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
Ao executar este código e pressionarmos uma tecla nós teremos o seguinte resultado: O código da tecla pressionada é: 65 É importante observar que o código da tecla pode ser obtido somente nos eventos keyPressed e keyReleased. Para o evento keyTyped o retorno do método getKeyCode() é VK_UNDEFINED. |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Recursão (Recursividade) |
Exercício Resolvido de Java - Como contar de 0 até 10 usando recursividade em Java - Funções recursivas em JavaQuantidade de visualizações: 5451 vezes |
|
Pergunta/Tarefa: Escreva um método Java recursivo que conta e exibe os valores de 0 até 10. Seu método deverá possuir a seguinte assinatura:
public static void contarRecursivamente(int n){
// sua implementação aqui
}
Sua saída deverá ser parecida com: 0 1 2 3 4 5 6 7 8 9 10 Veja a resolução comentada deste exercício usando Java:
package exercicio;
public class Exercicio {
public static void main(String[] args) {
// efetua uma chamada ao método recursivo
// fornecendo o primeiro valor
contarRecursivamente(0);
}
// método recursivo que conta de 0 até 10;
public static void contarRecursivamente(int n){
// vamos exibir o número atual
System.out.print(n + " ");
// devemos prosseguir com a recursividade?
if(n < 10){
// incrementa o valor de n
n++;
// e faz uma nova chamada recursiva
contarRecursivamente(n);
}
}
}
|
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Física - Mecânica - Movimento Retilíneo Uniforme (MRU) |
Exercícios Resolvidos de Física usando Java - Dois automóveis, A e B, movem-se em movimento uniforme e no mesmo sentido. Suas velocidades escalares têm módulos respectivamente iguais a...Quantidade de visualizações: 2756 vezes |
|
Pergunta/Tarefa: Dois automóveis, A e B, movem-se em movimento uniforme e no mesmo sentido. Suas velocidades escalares têm módulos respectivamente iguais a 15 m/s e 10 m/s. No instante t = 0, os automóveis encontram-se nas posições indicadas abaixo: ![]() Determine: a) o instante em que A alcança B; b) a que distância da posição inicial de A ocorre o encontro. Resposta/Solução: Este é um dos exemplos clássicos que encontramos nos livros de Física Mecânica, nos capítulos dedicados ao Movimento Retilíneo Uniforme (MRU). Em geral, tais exemplos são vistos como parte dos estudos de encontro e ultrapassagem de partículas. Por se tratar de Movimento Retilíneo Uniforme (MRU), as grandezas envolvidas nesse problema são: posição (deslocamento), velocidade e tempo. Assim, já sabemos de antemão que o veículo B está 100 metros à frente do veículo A. Podemos então começar calculando a posição atual na qual cada um dos veículos se encontra. Isso é feito por meio da Função Horária da Posição ou Deslocamento em Movimento Retilíneo Uniforme - MRU. Veja o código Java que nos retorna a posição inicial (em metros) dos dois veículos:
package arquivodecodigos;
public class Estudos{
public static void main(String args[]){
// valocidade do veículo A
double vA = 15; // em metros por segundo
// valocidade do veículo B
double vB = 10; // em metros por segundo
// posição inicial dos dois veículos
double sInicialA = 0;
double sInicialB = 100;
// tempo inicial em segundos
double tempo_inicial = 0;
// calcula a posição atual dos dois veículos
double sA = sInicialA + (vA * tempo_inicial);
double sB = sInicialB + (vB * tempo_inicial);
// mostra os resultados
System.out.println("A posição do veículo A é: " + sA + " metros");
System.out.println("A posição do veículo B é: " + sB + " metros");
}
}
Ao executar esta primeira parte do código Java nós teremos o seguinte resultado: A posição do veículo A é: 0.0 metros A posição do veículo B é: 100.0 metros Agora que já temos o código que calcula a posição de cada veículo, já podemos calcular o tempo no qual o veículo A alcança o veículo B. Para isso vamos pensar direito. Se o veículo A vai alcançar o veículo B, então já sabemos que a velocidade do veículo A é maior que a velocidade do veículo B. Sabemos também que a posição do veículo B é maior que a posição do veículo A. Só temos que aplicar a fórmula do tempo, que é a variação da posição dividida pela variação da velocidade. Veja o código Java que efetua este cálculo:
package arquivodecodigos;
public class Estudos{
public static void main(String args[]){
// valocidade do veículo A
double vA = 15; // em metros por segundo
// valocidade do veículo B
double vB = 10; // em metros por segundo
// posição inicial dos dois veículos
double sInicialA = 0;
double sInicialB = 100;
// tempo inicial em segundos
double tempo_inicial = 0;
// calcula a posição atual dos dois veículos
double sA = sInicialA + (vA * tempo_inicial);
double sB = sInicialB + (vB * tempo_inicial);
// calculamos o tempo no qual o veículo A alcança o veículo B
double tempo = (sB - sA) / (vA - vB);
// mostra os resultados
System.out.println("A posição do veículo A é: " + sA + " metros");
System.out.println("A posição do veículo B é: " + sB + " metros");
System.out.println("O veículo A alcança o veículo B em " + tempo +
" segundos");
}
}
Ao executar esta modificação do código Java nós teremos o seguinte resultado: A posição do veículo A é: 0.0 metros A posição do veículo B é: 100.0 metros O veículo A alcança o veículo B em 20.0 segundos O item b pede para indicarmos a que distância da posição inicial de A ocorre o encontro entre os dois veículos. Agora que já sabemos o tempo do encontro, fica muito fácil. Basta multiplicarmos a velocidade do veículo A pelo tempo do encontro. Veja:
package arquivodecodigos;
public class Estudos{
public static void main(String args[]){
// valocidade do veículo A
double vA = 15; // em metros por segundo
// valocidade do veículo B
double vB = 10; // em metros por segundo
// posição inicial dos dois veículos
double sInicialA = 0;
double sInicialB = 100;
// tempo inicial em segundos
double tempo_inicial = 0;
// calcula a posição atual dos dois veículos
double sA = sInicialA + (vA * tempo_inicial);
double sB = sInicialB + (vB * tempo_inicial);
// calculamos o tempo no qual o veículo A alcança o veículo B
double tempo = (sB - sA) / (vA - vB);
// a que distância da posição inicial de A ocorre o encontro
double distancia_encontro = vA * tempo;
// mostra os resultados
System.out.println("A posição do veículo A é: " + sA + " metros");
System.out.println("A posição do veículo B é: " + sB + " metros");
System.out.println("O veículo A alcança o veículo B em " + tempo +
" segundos");
System.out.println("O encontro ocorreu a " + distancia_encontro +
" metros da distância inicial do veículo A");
}
}
Agora o código Java completo nos mostra o seguinte resultado: A posição do veículo A é: 0.0 metros A posição do veículo B é: 100.0 metros O veículo A alcança o veículo B em 20.0 segundos O encontro ocorreu a 300.0 metros da distância inicial do veículo A Para demonstrar a importância de se saber calcular a Função Horária da Posição ou Deslocamento em Movimento Retilíneo Uniforme (MRU), experimente indicar que o veículo A saiu da posição 20 metros, e defina a posição inicial do veículo B para 120 metros, de modo que ainda conservem a distância de 100 metros entre eles. Você verá que o tempo do encontro e a distância do encontro em relação à posição inicial do veículo A continuam os mesmos. Agora experimente mais alterações nas posições iniciais, na distância e também nas velocidades dos dois veículos para entender melhor os conceitos que envolvem o Movimento Retilíneo Uniforme (MRU). |
Java ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes) |
Como classificar um array em ordem crescente usando o método sort() da classe Arrays do JavaQuantidade de visualizações: 27095 vezes |
|
Nesta dica mostrarei como podemos usar o método sort() da classe Arrays da linguagens Java para ordenar um vetor de inteiros em ordem crescente. A assinatura do método sort() que usaremos é aquela que recebe apenas um argumento, ou seja, o array a ser ordenado. Note que a implementação de ordenação usada pelo método sort() é a ordenação quicksort, considerada uma das mais rápidas nos dias atuais. Veja o código completo para o exemplo:
package estudos;
import java.util.*;
public class Estudos{
public static void main(String[] args){
// vamos declarar e construir um vetor de 5 inteiros
int[] valores = new int[5];
// inicializa os elementos do array
valores[0] = 23;
valores[1] = 65;
valores[2] = 2;
valores[3] = 87;
valores[4] = 34;
// exibe os valores dos elementos do array
// usando o laço for melhorado
System.out.println("Elementos na ordem original:");
for(int valor : valores){
System.out.print(valor + " ");
}
// ordena os valores em ordem crescente
Arrays.sort(valores);
// exibe os valores dos elementos do array
// usando o laço for melhorado
System.out.println("\n\nElementos classificados em ordem crescente:");
for(int valor : valores){
System.out.print(valor + " ");
}
System.out.println("\n\n");
System.exit(0);
}
}
Ao executarmos este código Java nós teremos o seguinte resultado: Elementos na ordem original: 23 65 2 87 34 Elementos classificados em ordem crescente: 2 23 34 65 87 |
Java ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes) |
Como retornar o menor valor em um array de inteiros em JavaQuantidade de visualizações: 1785 vezes |
Nesta dica eu mostro como obter o menor valor em um array (vetor) de inteiros. Veja o código completo para o exemplo:
package arquivodecodigos;
public class Estudos{
public static void main(String[] args){
int[] valores = new int[5];
// inicializa os elementos do array
valores[0] = 23;
valores[1] = 65;
valores[2] = 2;
valores[3] = 87;
valores[4] = 34;
// obtém o menor valor
int menor = menor(valores);
System.out.println("O menor valor é: " + menor);
System.exit(0);
}
public static int menor(int[] a){
int min = a[0];
for(int i = 1; i < a.length; i++){
if(a[i] < min){
min = a[i];
}
}
return min;
}
}
Ao executarmos este código nós teremos o seguinte resultado: O menor valor é: 2 |
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 |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |






