![]() |
|||||
![]() Planilha Web - Planilhas e Calculadoras online para estudantes e profissionais de Engenharia Civil, Engenharia Elétrica e Engenharia Mecânica. |
|||||
|
Java ::: Dicas & Truques ::: Mouse e Teclado |
Java Avançado - Como verificar se a tecla Caps Lock está ativada usando o método getLockingKeyState() da classe Toolkit do JavaQuantidade de visualizações: 11422 vezes |
Nesta dica mostrarei como é possível usar o método getLockingKeyState() da classe Toolkit da linguagem Java para verificar se a tecla Caps Lock estão ou não ativada no seu computador. Note o valor KeyEvent.VK_CAPS_LOCK sendo passado para o método. Veja o código completo para o exemplo: package arquivodecodigos; import java.awt.Toolkit; import java.awt.event.*; public class Estudos{ public static void main(String[] args){ Toolkit tk = Toolkit.getDefaultToolkit(); if(tk.getLockingKeyState(KeyEvent.VK_CAPS_LOCK)) System.out.println("A tecla Caps Lock está ativada"); else System.out.println("A tecla Caps Lock não está ativada"); System.exit(0); } } Ao executarmos este código você verá uma mensagem parecida com: A tecla Caps Lock está ativada |
Java ::: Classes e Componentes ::: JButton |
Como definir a cor do texto de um botão JButton do Java SwingQuantidade de visualizações: 9552 vezes |
Nesta dica eu mostrarei como é possível definir a cor do texto de um componente JButton do Java Swing. Para isso nós usamos o método setForeground() da classe JButton, fornecendo a cor desejada, por exemplo, Color.RED. Veja um exemplo Java Swing completo: package arquivodecodigos; import java.awt.*; import javax.swing.*; public class Estudos extends JFrame{ public Estudos() { super("Estudos Swing"); Container c = getContentPane(); c.setLayout(new FlowLayout(FlowLayout.LEFT)); // Cria um JButton com a cor do texto vermelho JButton btn1 = new JButton("Clique Aqui!"); btn1.setForeground(Color.RED); // Cria um JButton com a cor de fundo verde JButton btn2 = new JButton("Clique Aqui!"); btn2.setForeground(Color.GREEN); // Adiciona os botões à janela c.add(btn1); c.add(btn2); setSize(350, 250); setVisible(true); } public static void main(String args[]){ Estudos app = new Estudos(); app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } |
Java ::: Dicas & Truques ::: Entrada e Saída em Arquivos (File Input/Output - IO) |
Como ler o conteúdo de um arquivo uma linha de cada vez usando o método readLine() da classe RandomAccessFile da linguagem JavaQuantidade de visualizações: 13307 vezes |
Uma das operações mais frequentes em um programa é a leitura do conteúdo de arquivos. A classe RandomAccessFile nos fornece o método readLine() que é muito útil quando precisamos ler as linhas de conteúdo em um arquivo. O método readLine() lê bytes consecutivos do arquivo, começando na posição atual do ponteiro de arquivos até alcançar um caractere marcador de final de linha ou o fim do arquivo. Cada byte é convertido em um caractere tomando-se o valor do byte para os oito bits de menor ordem do caractere e definindo os oito bits de ordem alta do caractere como zero. Desta forma, este método não suporta Unicode completamente. Uma linha de texto é finalizada por um caractere de retorno de carro ("\r"), um caractere de nova linha ("\n"), um caractere de retorno de carro seguido por um caractere de nova linha, ou o final do arquivo. Caracteres de final de linha não são incluídos na string retornada pelo método. É importante observar que, a cada chamada ao método readLine(), o ponteiro de arquivo é avançado e posicionado para a leitura subsequente. Veja o exemplo: import java.io.*; public class Estudos{ public static void main(String[] args){ // uma instância de RandomAccessFile para leitura e escrita try{ RandomAccessFile arquivo = new RandomAccessFile("C:\\java\\conteudo.txt", "rw"); // vamos ler o conteúdo do arquivo uma linha de cada vez String linha; while((linha = arquivo.readLine()) != null){ System.out.println("Posição do ponteiro: " + arquivo.getFilePointer()); System.out.println(linha); } arquivo.close(); } catch(FileNotFoundException fnfe){ System.out.println(fnfe.getMessage()); } catch(IOException ioe){ System.out.println(ioe.getMessage()); } System.exit(0); } } Ao executar este exemplo nós teremos o seguinte resultado: Posição do ponteiro: 27 Primeira linha do arquivo Posição do ponteiro: 53 Segunda linha do arquivo Posição do ponteiro: 78 Terceira linha do arquivo |
Java ::: Reflection (introspecção) e RTI (Runtime Type Information) ::: Passos Iniciais |
Java Reflection - Como exibir os nomes de todas as superclasses de uma determinada classe usando introspecção em JavaQuantidade de visualizações: 8018 vezes |
Nesta dica veremos como tirar proveito dos métodos getClass(), getName() e getSuperclass() da classe Class da linguagem Java para exibirmos todas as super classes de um determinada classe, até chegarmos à super classe mais alta na hierarquia, ou seja, a classe Object. Note como usamos um objeto da classe Stack para criarmos uma estrutura de dados do tipo pilha que nos permite obter os nomes das super classes e depois exibir os mesmos na ordem inversa. Veja o código completo para o exemplo: package arquivodecodigos; import java.util.Stack; import javax.swing.*; public class Estudos{ // vamos precisar de uma pilha aqui static Stack<String> pilha = new Stack(); public static void main(String args[]){ // Exibe todas as superclasses de JPanel JPanel panel = new JPanel(); obterSuperclasses(panel); // agora vamos exibir os resultados na ordem // contrária que eles foram obtidos int cont = 0; while(pilha.size() > 0){ // insere espaços antes String ident = ""; for(int i = 0; i < cont; i++){ ident = ident + " "; } System.out.println(ident + pilha.pop()); cont++; } System.exit(0); } static void obterSuperclasses(Object obj){ // vamos adicionar este valor na pilha pilha.push(obj.getClass().getName()); Class cls = obj.getClass(); Class superclass = cls.getSuperclass(); while(superclass != null){ String className = superclass.getName(); // vamos adicionar este valor na pilha pilha.push(className); cls = superclass; superclass = cls.getSuperclass(); } } } Ao executarmos este código Java nós teremos o seguinte resultado: java.lang.Object java.awt.Component java.awt.Container javax.swing.JComponent javax.swing.JPanel |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Ordenação e Pesquisa (Busca) |
Exercícios Resolvidos de Java - Como usar a Ordenação da Bolha em Java para ordenar os valores de um vetor em ordem crescente ou decrescenteQuantidade de visualizações: 3697 vezes |
Pergunta/Tarefa: A Ordenação da Bolha, ou ordenação por flutuação (literalmente "por bolha"), também chamada de Bubble Sort, é um algoritmo de ordenação dos mais simples. A ideia é percorrer o array diversas vezes, a cada passagem fazendo flutuar para o topo o maior elemento da sequência. Essa movimentação lembra a forma como as bolhas em um tanque de água procuram seu próprio nível, e disso vem o nome do algoritmo. No melhor caso, o algoritmo executa n operações relevantes, onde n representa o número de elementos do vetor. No pior caso, são feitas n2 operações. A complexidade desse algoritmo é de ordem quadrática. Por isso, ele não é recomendado para programas que precisem de velocidade e operem com quantidade elevada de dados. Escreva um programa Java que declara, constrói um vetor de 10 inteiros e peça para o usuário informar os valores de seus elementos. Em seguida use a ordenação da bolha para ordenar os elementos em ordem crescente. Sua saída deverá ser parecida com: Informe o valor para o índice 0: 84 Informe o valor para o índice 1: 23 Informe o valor para o índice 2: 9 Informe o valor para o índice 3: 5 Informe o valor para o índice 4: 11 Informe o valor para o índice 5: 3 Informe o valor para o índice 6: 50 Informe o valor para o índice 7: 7 Informe o valor para o índice 8: 2 Informe o valor para o índice 9: 73 O array informado foi: 84 23 9 5 11 3 50 7 2 73 O array ordenado é: 2 3 5 7 9 11 23 50 73 84 Veja a resolução comentada deste exercício usando Java: package estudos; import java.util.Scanner; public class Estudos { public static void main(String[] args) { // vamos declarar e construir um vetor de 10 elementos int valores[] = new int[10]; // para ler a entrada do usuário Scanner entrada = new Scanner(System.in); // vamos pedir que o usuário informe os valores for(int i = 0; i < valores.length; i++){ System.out.print("Informe o valor para o índice " + i + ": "); valores[i] = Integer.parseInt(entrada.nextLine()); } // vamos mostrar o vetor informado System.out.println("\nO array informado foi:\n"); for(int i = 0; i < valores.length; i++){ System.out.print(valores[i] + " "); } // vamos ordenar os elementos do vetor usando a ordenação da bolha // laço externo de trás para frente for(int i = valores.length - 1; i > 1; i--){ for(int j = 0; j < i; j++){ // laço interno vai no fluxo normal if(valores[j] > valores[j + 1]){ // temos que trocá-los de lugar int temp = valores[j]; valores[j] = valores[j + 1]; valores[j + 1] = temp; } } } // vamos exibir o vetor já ordenado System.out.println("\n\nO array ordenado é:\n"); for(int i = 0; i < valores.length; i++){ System.out.print(valores[i] + " "); } System.out.println("\n"); } } |
C ::: Desafios e Lista de Exercícios Resolvidos ::: C Básico |
Exercícios Resolvidos de C - Lendo a idade de um nadador e classificando sua categoria como infantil, juvenil, adolescente, adulto ou sêniorQuantidade de visualizações: 417 vezes |
Pergunta/Tarefa: Escreva um programa C que solicita a idade de um nadador e classifica sua categoria de acordo com as seguintes regras: a) De 5 a 7 anos - Infantil; b) De 8 a 10 anos - Juvenil; c) De 11 a 15 anos - Adolescente; d) De 16 a 30 anos - Adulto; e) Acima de 30 anos - Sênior. Sua saída deverá ser parecida com: Informe sua idade: 19 Sua categoria é Adulto Veja a resolução comentada deste exercício usando C: #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { // variáveis usadas na resolução do problema int idade; // vamos solicitar a idade do nadador printf("Informe sua idade: "); scanf("%d", &idade); // vamos verificar a categoria do nadador if((idade >= 5) && (idade <= 7)) { printf("Sua categoria é Infantil"); } else if((idade >= 8) && (idade <= 10)) { printf("Sua categoria é Juvenil"); } else if((idade >= 11) && (idade <= 15)) { printf("Sua categoria é Adolescente"); } else if((idade >= 16) && (idade <= 30)) { printf("Sua categoria é Adulto"); } else if(idade > 30) { printf("Sua categoria é Sênior"); } else { printf("Não pertence a nenhuma categoria."); } printf("\n\n"); system("PAUSE"); return 0; } |
Java ::: Classes e Componentes ::: JTextArea |
Java Swing - Como definir a cor de fundo para um JTextAreaQuantidade de visualizações: 115 vezes |
Nesta dica mostrarei como podemos aplicar uma cor de fundo a um controle área de texto, ou seja, um JTextArea do Java Swing. Para isso nós só precisamos fazer uma chamada ao seu método setBackground() e passar a cor desejada. Veja um exemplo de como isso pode ser feito: textArea = new JTextArea(10, 20); // Define a cor de fundo textArea.setBackground(Color.YELLOW); Note que aqui nós temos uma variável chamada textArea, do tipo JTextArea. |
Java ::: Dicas & Truques ::: Data e Hora |
Como usar a classe GregorianCalendar do Java em suas aplicaçõesQuantidade de visualizações: 13677 vezes |
[Baseado na documentação Java] - A classe GregorianCalendar (do pacote java.util) é uma classe concreta derivada de Calendar que fornece o sistema de calendário padrão usado em praticamente todos os países. Veja sua posição na hierarquia de classes Java:java.lang.Object java.util.Calendar java.util.GregorianCalendar As interfaces implementadas por esta classe são Serializable, Cloneable e Comparable<Calendar>.[br][br] A classe GregorianCalendar é um calendário híbrido que suporta tanto o sistema de calendário juliano (Julian) quanto o gregoriano (Gregorian), com suporte para uma única descontinuidade, a qual corresponde por padrão à data gregoriana quando o calendário gregoriano foi instituido (15 de outubro de 1582 em alguns países, mais tarde em outros). Esta data pode ser alterada por meio de uma chamada ao método setGregorianChange(). Veja um trecho de código no qual criamos uma instância da classe GregorianCalendar usando a data e hora atual, o fuso horário (time zone) e localização (locale) padrão: import java.util.*; public class Estudos{ public static void main(String args[]){ Calendar agora = new GregorianCalendar(); System.out.println(agora.toString()); } } Observe como instanciamos um objeto da classe GregorianCalendar e o tratamos como um objeto da classe Calendar. Esta forma de referenciar um objeto da classe derivada a partir de uma interface ou superclasse é muito comum em Java. |
VisuAlg ::: Desafios e Lista de Exercícios Resolvidos ::: Laços de Repetição |
Exercícios Resolvidos de VisuAlg - Como calcular e exibir os 50 primeiros números primos em VisuAlgQuantidade de visualizações: 533 vezes |
Pergunta/Tarefa: Um inteiro é um número primo se ele for divisível somente por 1 e por ele mesmo. Assim, 2, 3, 5 e 7 são primos, enquanto 4, 6, 8 e 9 não são. Note que o número 1 não é primo. Escreva um programa (algoritmo) VisuAlg que usa um laço PARA, ENQUANTO ou REPITA...ATE para calcular e exibir os 50 primeiros números primos. Sua saída deverá ser parecida com: 50 primeiros números primos: 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199 211 223 227 229 Veja a resolução comentada deste exercício usando VisuAlg: algoritmo "Como exibir os N primeiros números primos em VisuAlg" var // variáveis usadas na resolução do problema quantidade, contador, numero, j: inteiro primo: logico inicio quantidade <- 50 // quantidade de números primos contador <- 0 // quantidade de números primos encontrados numero <- 0 // inteiro inicial // Lembre-se! O número 1 não é primo escreval(quantidade, " primeiros numeros primos:") escreval() // laço while será executado até encontrar os 50 primeiros números primos enquanto contador < quantidade faca primo <- verdadeiro // se o valor de i for 7, a variável j do laço contará // de 2 até 7 / 2 (divisão inteira), ou seja, 3. Se o // módulo de 7 por qualquer um dos valores neste intervalo // for igual a 0, então o número não é primo para j de 2 ate Int(numero / 2) faca se numero mod j = 0 entao primo <- falso // não é primo interrompa fimse fimpara se ((primo = verdadeiro) e (numero > 1)) entao escreva(numero:6) contador <- contador + 1 // encontramos um número primo se contador mod 10 = 0 entao escreval() fimse fimse numero <- numero + 1 fimenquanto fimalgoritmo |
Delphi ::: Classes, Controles e Componentes ::: TRegistry (Registro do Windows) |
Como excluir chaves no registro do Windows usando Delphi a função DeleteKey() da classe TRegistry do DelphiQuantidade de visualizações: 14142 vezes |
Em algumas situações precisamos excluir determinadas chaves do registro do Windows. Para isso podemos usar o método DeleteKey() da classe TRegistry. Este método recebe uma string especificando a chave a ser excluída e retorna um valor Boolean, informando o sucesso da operação. Veja um trecho de código no qual tentamos excluir uma chave com o nome de "Arquivo de Códigos" localizada sob a chave raiz HKEY_CURRENT_USER: procedure TForm3.Button5Click(Sender: TObject); var reg: TRegistry; begin // uses Registry // vamos criar uma instância da classe TRegistry reg := TRegistry.Create; // a chave raiz padrão é HKEY_CURRENT_USER mas, por via das dúvidas // vamos reafirmar isso reg.RootKey := HKEY_CURRENT_USER; // vamos verificar se a chave que estamos querendo excluir // existe if reg.KeyExists('Arquivo de Códigos') then begin // a chave foi encontrada? vamos excluir if reg.DeleteKey('Arquivo de Códigos') then begin ShowMessage('A chave foi excluída com sucesso.'); end else begin ShowMessage('Não consegui excluir a chave especificada'); end; end else begin ShowMessage('A chave que você deseja excluir não foi encontrada.'); end; // vamos liberar o registro reg.Free; end; Note que este método remove a chave e todas as informações associadas a ela. Porém, se a chave possuir sub-chaves, estas deverão ser removidas individualmente antes de excluirmos a chave mãe. Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009. |
Você também poderá gostar das dicas e truques de programação abaixo |
Java - Estruturas de dados em Java - Como obter a quantidade de nós em uma árvore binária usando Java Python - Python para iniciantes - Como inserir uma determinada quantidade de espaços à direita de uma string |
Nossas 20 dicas & truques de programação mais recentes |
Últimos Projetos e Códigos Fonte Liberados Para Apoiadores do Site |
Python - Como criar o jogo Pedra, Papel, Tesoura em Python - Jogo completo em Python com código comentado |
Últimos Exercícios Resolvidos |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |