Você está aqui: Java ::: Dicas & Truques ::: Internacionalização e Localização (Internationalization, i18n, Localization, l10n) |
Como retornar a lista de Locales disponíveis ou instalados na JVM atualQuantidade de visualizações: 8084 vezes |
Em algumas situações pode ser necessário alterar o Locale da JVM. Porém, antes de realizar esta ação, é preciso sabermos quais os Locales suportados. A classe Locale nos fornece um método estático chamado getAvailableLocales() que retorna um array de objetos Locale disponíveis. Veja um trecho de código no qual usamos getAvailableLocales() para obter a lista de Locales suportados na JVM e exibir o código da linguagem e o código e o nome do país: import java.util.*; public class Estudos{ public static void main(String args[]){ Locale[] locales = Locale.getAvailableLocales(); for(int i = 0; i < locales.length; i++){ System.out.println(locales[i].getLanguage() + " - " + locales[i].getCountry() + " - " + locales[i].getDisplayCountry()); } } } es - PE - Peru es - PA - Panamá sr - BA - Bósnia-Herzegóvina es - GT - Guatemala no - NO - Noruega sq - AL - Albânia pt - PT - Portugal el - CY - Chipre mk - MK - Macedânia, Repéblica da de - CH - Suíça en - US - Estados Unidos fi - FI - Finlândia en - MT - Malta sl - SI - Eslovênia sk - SK - Eslováquia tr - TR - Turquia en - GB - Reino Unido sr - CS - Sérvia e Montenegro en - NZ - Nova Zelândia no - NO - Noruega lt - LT - Lituânia es - NI - Nicarágua ga - IE - Irlanda fr - BE - Bélgica es - ES - Espanha fr - CA - Canadá et - EE - Estônia es - US - Estados Unidos es - MX - México in - ID - Indonésia es - UY - Uruguai lv - LV - Letônia pt - BR - Brasil es - DO - República Dominicana fr - CH - Suíça es - VE - Venezuela en - PH - Filipinas de - AT - Áustria nl - NL - Países Baixos es - EC - Equador is - IS - Islândia es - CO - Colômbia es - CR - Costa Rica es - CL - Chile en - ZA - África do Sul el - GR - Grécia it - IT - Itália en - IE - Irlanda uk - UA - Ucrânia pl - PL - Polônia fr - LU - Luxemburgo nl - BE - Bélgica en - IN - Índia ca - ES - Espanha es - BO - Bolívia en - AU - Austrália es - SV - El Salvador ru - RU - Rússia be - BY - Belarus bg - BG - Bulgária mt - MT - Malta es - PY - Paraguai fr - FR - França cs - CZ - República Tcheca it - CH - Suíça ro - RO - Romênia es - PR - Porto Rico en - CA - Canadá de - DE - Alemanha de - LU - Luxemburgo es - AR - Argentina ms - MY - Malásia hr - HR - Croácia en - SG - Cingapura sv - SE - Suécia da - DK - Dinamarca es - HN - Honduras |
![]() |
Java ::: Dicas & Truques ::: Strings e Caracteres |
Como converter uma string para letras maiúsculas usando o método toUpperCase() da classe String da linguagem JavaQuantidade 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 ::: Desafios e Lista de Exercícios Resolvidos ::: Métodos, Procedimentos e Funções |
Exercícios Resolvidos de Java - Métodos - Um método estático que recebe um vetor de inteiros e o exibeQuantidade de visualizações: 2411 vezes |
Exercício Resolvido de Java - Métodos - Um método estático que recebe um vetor de inteiros e o exibe Pergunta/Tarefa: Escreva um método Java que recebe um vetor de inteiros e o exibe. Este método deverá ter a seguinte assinatura: public static void exibirVetor(int[] vetor){ // sua implementação aqui } Sua saída deverá ser parecida com: ![]() Resposta/Solução: Veja a resolução comentada deste exercício usando Java console: ---------------------------------------------------------------------- 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) { Scanner entrada = new Scanner(System.in); // vamos declarar e construir um vetor de 5 inteiros int valores[] = new int[5]; // agora 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 " + (i + 1) + " elemento: "); valores[i] = Integer.parseInt(entrada.nextLine()); } // e agora vamos passar o vetor para o método exibirVetor() System.out.println("\nOs elementos do vetor são:\n"); exibirVetor(valores); System.out.println("\n"); } // um método estático que recebe um vetor de inteiros e o exibe public static void exibirVetor(int[] vetor){ // vamos percorrer os elementos do vetor e exibir cada um for(int i = 0; i < vetor.length; i++){ System.out.print(vetor[i] + " "); } } } |
Java ::: Classes e Componentes ::: JTextField |
Java Swing - Como definir a cor do texto de um JTextField usando o método setForeground()Quantidade de visualizações: 10495 vezes |
Nesta dica eu mostro como podemos usar o método setForeground() da classe JTextField para definir a cor de seu texto. Note que esta função pede um objeto da classe Color, por isso, neste exemplo, forneci o valor Color.BLUE. Veja o código Java Swing 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 ---------------------------------------------------------------------- import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Estudos extends JFrame{ JTextField texto; public Estudos() { super("Estudos Swing"); Container c = getContentPane(); c.setLayout(new FlowLayout(FlowLayout.LEFT)); // Cria um botão JButton btn = new JButton("Definir cor do texto"); btn.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e){ // vamos definir a cor do texto como azul texto.setForeground(Color.BLUE); } } ); // Cria o JTextField texto = new JTextField(10); // Adiciona o botão à janela c.add(btn); // Adiciona o JTextField à janela c.add(texto); setSize(350, 250); setVisible(true); } public static void main(String args[]){ Estudos app = new Estudos(); app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } |
Java ::: Pacote java.awt.event ::: KeyEvent |
Java Swing - Como detectar as teclas Insert ou Delete usando o método getKeyCode() da classe KeyEvent do JavaQuantidade de visualizações: 3201 vezes |
Em algumas situações nós precisamos detectar o pressionamento das teclas Insert ou Delete. Para isso podemos usar o método getKeyCode() da classe KeyEvent e testar se o código equivale a uma das constantes KeyEvent.VK_INSERT (Ins) ou KeyEvent.VK_DELETE (Del). Veja um trecho de código no qual testamos se alguma destas duas teclas foi pressionada: ---------------------------------------------------------------------- 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.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){ // a tecla Insert foi pressionada? if(e.getKeyCode() == KeyEvent.VK_INSERT){ JOptionPane.showMessageDialog(null, "A tecla Insert foi pressionada"); } // a tecla Enter Delete pressionada? else if(e.getKeyCode() == KeyEvent.VK_DELETE){ JOptionPane.showMessageDialog(null, "A tecla Delete foi pressionada"); } else{ JOptionPane.showMessageDialog(null, "Outra tecla foi pressionada"); } } @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); } } É importante observar que as teclas Insert e Delete podem ser detectadas somente nos eventos keyPressed e keyReleased. |
Java ::: Java + MySQL ::: Metadados da Base de Dados (Database Metadata) |
Java MySQL - Como obter os tipos de dados suportados pelo MySQL e seus correspondentes JDBC usando o método getTypeInfo() da interface DatabaseMetaDataQuantidade de visualizações: 6122 vezes |
Em algumas situações precisamos obter os tipos de dados suportados pelo MySQL e mapeá-los para seus correspondentes JDBC. Esta não é uma tarefa fácil, mas que, com uma pequena ajuda dos recursos de reflexão do Java, pode ser realizada depois de algumas xícaras de café. O primeiro passo é obter os tipos de dados suportados pelo MySQL com uma chamada ao método getTypeInfo() da interface DatabaseMetaData. Os campos do ResultSet que nos interessam são TYPE_NAME e DATA_TYPE. TYPE_NAME traz o nome do tipo de dados no MySQL enquanto DATA_TYPE traz o tipo JDBC correspondente como um inteiro. Assim, o que temos que fazer é usar reflexão para obter todos os campos da classe java.sql.Types e efetuar um mapeamento entre os tipos. 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 estudosbancodados; import java.lang.reflect.Field; import java.sql.*; import java.util.HashMap; import java.util.Map; public class EstudosBancoDados{ static Map mapa; // usado para mapear os tipos JDBC public static void main(String[] args) { // strings de conexão String databaseURL = "jdbc:mysql://localhost/estudos"; String usuario = "root"; String senha = "osmar1234"; String driverName = "com.mysql.jdbc.Driver"; try { Class.forName(driverName).newInstance(); Connection conn = DriverManager.getConnection(databaseURL, usuario, senha); // vamos obter um objeto da classe com.mysql.jdbc.DatabaseMetaData DatabaseMetaData dbmd = conn.getMetaData(); // vamos obter os tipos de dados suportados por esta versão do MySQL // e seus correspondentes JDBC ResultSet tiposDados = dbmd.getTypeInfo(); while(tiposDados.next()){ System.out.println("MySQL: " + tiposDados.getString("TYPE_NAME") + " - JDBC: " + getJdbcTypeName(Integer.parseInt(tiposDados.getString("DATA_TYPE")))); } // vamos fechar o ResultSet tiposDados.close(); } catch (SQLException ex) { System.out.println("SQLException: " + ex.getMessage()); System.out.println("SQLState: " + ex.getSQLState()); System.out.println("VendorError: " + ex.getErrorCode()); } catch (Exception e) { System.out.println("Problemas ao tentar conectar com o banco de dados: " + e); } } // Este método retorna o nome de um tipo JDBC // O retorno é null se o tipo JDBC não puder ser reconhecido public static String getJdbcTypeName(int jdbcType){ // vamos usar reflection para mapear valores inteiros a seus nomes if(mapa == null) { mapa = new HashMap(); // vamos obter todos os campos da classe java.sql.Types Field[] campos = java.sql.Types.class.getFields(); // vamos percorrer os campos for(int i = 0; i < campos.length; i++){ try{ // vamos obter o nome do campo String nome = campos[i].getName(); // vamos obter o valor do campo Integer valor = (Integer)campos[i].get(null); // vamos adicionar ao mapa mapa.put(valor, nome); } catch(IllegalAccessException e){ System.out.println("Ops: " + e.getMessage()); } } } // vamos retornar o nome do tipo JDBC return (String)mapa.get(new Integer(jdbcType)); } } O resultado da execução deste código foi: MySQL: BIT - JDBC: BIT MySQL: BOOL - JDBC: BIT MySQL: TINYINT - JDBC: TINYINT MySQL: TINYINT UNSIGNED - JDBC: TINYINT MySQL: BIGINT - JDBC: BIGINT MySQL: BIGINT UNSIGNED - JDBC: BIGINT MySQL: LONG VARBINARY - JDBC: LONGVARBINARY MySQL: MEDIUMBLOB - JDBC: LONGVARBINARY MySQL: LONGBLOB - JDBC: LONGVARBINARY MySQL: BLOB - JDBC: LONGVARBINARY MySQL: TINYBLOB - JDBC: LONGVARBINARY MySQL: VARBINARY - JDBC: VARBINARY MySQL: BINARY - JDBC: BINARY MySQL: LONG VARCHAR - JDBC: LONGVARCHAR MySQL: MEDIUMTEXT - JDBC: LONGVARCHAR MySQL: LONGTEXT - JDBC: LONGVARCHAR MySQL: TEXT - JDBC: LONGVARCHAR MySQL: TINYTEXT - JDBC: LONGVARCHAR MySQL: CHAR - JDBC: CHAR MySQL: NUMERIC - JDBC: NUMERIC MySQL: DECIMAL - JDBC: DECIMAL MySQL: INTEGER - JDBC: INTEGER MySQL: INTEGER UNSIGNED - JDBC: INTEGER MySQL: INT - JDBC: INTEGER MySQL: INT UNSIGNED - JDBC: INTEGER MySQL: MEDIUMINT - JDBC: INTEGER MySQL: MEDIUMINT UNSIGNED - JDBC: INTEGER MySQL: SMALLINT - JDBC: SMALLINT MySQL: SMALLINT UNSIGNED - JDBC: SMALLINT MySQL: FLOAT - JDBC: REAL MySQL: DOUBLE - JDBC: DOUBLE MySQL: DOUBLE PRECISION - JDBC: DOUBLE MySQL: REAL - JDBC: DOUBLE MySQL: VARCHAR - JDBC: VARCHAR MySQL: ENUM - JDBC: VARCHAR MySQL: SET - JDBC: VARCHAR MySQL: DATE - JDBC: DATE MySQL: TIME - JDBC: TIME MySQL: DATETIME - JDBC: TIMESTAMP MySQL: TIMESTAMP - JDBC: TIMESTAMP |
Java ::: Dicas & Truques ::: Matemática e Estatística |
Como converter de binário para decimal usando o método parseInt() da classe Integer da linguagem JavaQuantidade de visualizações: 15755 vezes |
Nesta dica eu mostro como podemos usar o método parseInt() da classe Integer do Java para converter um valor binário em um valor decimal. Para isso só precisamos forcecer o valor 2 como segundo argumento para o método parseInt(). 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 arquivodecodigos; public class Estudos{ public static void main(String args[]){ String binario = "00000110"; // efetua a conversão de binário para // decimal int decimal = Integer.parseInt(binario, 2); // exibe o resultado System.out.println("O valor binário " + binario + " convertido para decimal é: " + decimal); System.exit(0); } } Ao executar este exemplo nós teremos o seguinte resultado: O valor binário 00000110 convertido para decimal é: 6 |
Java ::: Fundamentos da Linguagem ::: Estruturas de Controle |
Java para iniciantes - Como usar a instrução break em laços for e while da linguagem JavaQuantidade de visualizações: 13022 vezes |
A instrução break é usada para abandonarmos completamente a execução de um laço for ou while. Assim, a execução do laço é interrompida no ponto onde a instrução break se encontra e o controle segue para a próxima instrução do programa após o laço. Veja um exemplo no qual temos um laço for que é abandonado após a variável de controle atingir o valor 5:---------------------------------------------------------------------- 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 ---------------------------------------------------------------------- public class Estudos{ public static void main(String[] args) { for(int i = 0; i < 1000; i++){ if(i == 5) break; System.out.println(i); } } } Veja o mesmo código usando um laço while infinito: ---------------------------------------------------------------------- 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 ---------------------------------------------------------------------- public class Estudos{ public static void main(String[] args) { int i = 0; while(true){ if(i == 5) break; System.out.println(i); i++; } } } |
Java ::: Dicas & Truques ::: Arquivos e Diretórios |
Como criar um arquivo em Java usando o método createNewFile() da classe FileQuantidade de visualizações: 60 vezes |
Nesta dica mostrarei como é possível usar o método createNewFile() da clase File, do pacote java.io, para criar um novo arquivo. Note que estou usando um bloco try...catch para tratar os possíveis erros decorrentes desta operação. 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 arquivodecodigos; import java.io.*; public class Estudos{ public static void main(String[] args){ try{ File arquivo = new File("c:\\estudos_java\\osmar.txt"); // Cria o arquivo se este não existe ainda boolean ok = arquivo.createNewFile(); // o arquivo foi criado com sucesso? if(ok){ System.out.println("Arquivo criado com sucesso."); } else{ System.out.println("Nao foi possivel criar o arquivo."); } } catch(IOException e){ System.out.println("Erro: " + e.toString()); } } } Ao executar este código nós teremos o seguinte resultado: Arquivo criado com sucesso. |
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 |