Você está aqui: Java ::: Classes e Componentes ::: JList |
Como excluir o item selecionado em uma JListQuantidade de visualizações: 11508 vezes |
/* Este exemplo mostra como excluir o item selecionado em uma JList. */ import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Estudos extends JFrame{ JList lista; public Estudos() { super("A classe JList"); Container c = getContentPane(); c.setLayout(new FlowLayout(FlowLayout.LEFT)); // Cria itens compostos de nomes final String nomes[] = {"Carlos", "Marcelo", "Fabiana", "Carolina", "Osmar"}; // Cria um novo DefaultListModel DefaultListModel modelo = new DefaultListModel(); // Atribui elementos ao DefaultListModel for(int i = 0; i < nomes.length; i++){ modelo.addElement(nomes[i]); } // Cria a JList lista = new JList(); // Atribui o DefaultListModel à JList lista.setModel(modelo); // Define a seleção única para a lista lista.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); // Um botão que permite excluir o item selecionado JButton btn = new JButton("Excluir selecionado"); btn.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e){ int indice = lista.getSelectedIndex(); // exclui o item selecionado if(indice > -1) ((DefaultListModel)(lista.getModel())) .remove(indice); } } ); // Adiciona a lista à janela c.add(new JScrollPane(lista)); // Adiciona o botão à janela c.add(btn); setSize(350, 250); setVisible(true); } public static void main(String args[]){ Estudos app = new Estudos(); app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } |
![]() |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Exceções e Tratamentos de Erros |
Exceções e Tratamentos de Erros - Exercícios Resolvidos de Java - Ex. 1 - Forçando o usuário a informar dois inteiros válidos antes de efetuar sua somaQuantidade de visualizações: 3162 vezes |
Pergunta/Tarefa: Escreva um programa Java que usa tratamento de erros try...catch para forçar o usuário a informar dois valores inteiros válidos antes de tentar somá-los. Caso o usuário informe um ou os dois valores inválidos, o programa deverá exibir uma mensagem de erro e solicitar os valores novamente. 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); boolean validos = false; // para verificar se os valores são inteiros válidos int n1, n2, soma; // solicita que o usuário informe os dois valores while(!validos){ try { System.out.print("Informe o primeiro valor: "); n1 = Integer.parseInt(entrada.nextLine()); // tenta fazer a conversão System.out.print("Informe o segundo valor: "); n2 = Integer.parseInt(entrada.nextLine()); // tenta fazer a conversão // se chegou até aqui é porque não houve erros na conversão, ou seja, o usuário // informou inteiros válidos soma = n1 + n2; System.out.println("A soma dos valores é: " + soma); validos = true; } catch (Exception ex) { // houve erro na conversão? System.out.println("Dados inválidos: " + ex.toString()); System.out.println("Por favor, informe os dois números novamente"); } } } } |
Java ::: Java + MySQL ::: Metadados da Base de Dados (Database Metadata) |
Java MySQL - Como obter uma lista das funções de data e hora suportadas pelo MySQL usando o método getTimeDateFunctions() da interface DatabaseMetaDataQuantidade de visualizações: 5431 vezes |
Em algumas situações gostaríamos de, via código, obter uma lista das funções de data e hora suportadas pelo MySQL. Para isso podemos usar o método getTimeDateFunctions() da interface DatabaseMetaData. É importante observar que, no Sun Microsystem's JDBC Driver for MySQL, a interface DatabaseMetaData é implementada por uma classe do mesmo nome, no pacote com.mysql.jdbc.DatabaseMetaData. E esta classe implementa o método getTimeDateFunctions() de forma a retornar a lista de funções de data e hora separadas por vírgulas. Veja um trecho de código Java no qual listamos todas as funções de data e hora suportados no MySQL 5.0: ---------------------------------------------------------------------- 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.sql.Connection; import java.sql.DatabaseMetaData; import java.sql.DriverManager; import java.sql.SQLException; public class EstudosBancoDados{ 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 a lista de funções de data e hora disponíveis // nesta versão do MySQL String funcoesDataHora = dbmd.getTimeDateFunctions(); // como a lista de funções está separada por vírgulas, vamos obter // uma matriz de strings String funcoes[] = funcoesDataHora.split(","); // vamos mostrar o resultado for(int i = 0; i < funcoes.length; i++){ System.out.println(funcoes[i]); } } 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); } } } Ao executarmos este código teremos o seguinte resultado: DAYOFWEEK WEEKDAY DAYOFMONTH DAYOFYEAR MONTH DAYNAME MONTHNAME QUARTER WEEK YEAR HOUR MINUTE SECOND PERIOD_ADD PERIOD_DIFF TO_DAYS FROM_DAYS DATE_FORMAT TIME_FORMAT CURDATE CURRENT_DATE CURTIME CURRENT_TIME NOW SYSDATE CURRENT_TIMESTAMP UNIX_TIMESTAMP FROM_UNIXTIME SEC_TO_TIME TIME_TO_SEC |
Java ::: Java Swing - Gerenciadores de Layout ::: GridBagLayout |
Como usar o gerenciador de layout GridBagLayout em suas aplicações Java SwingQuantidade de visualizações: 12486 vezes |
O gerenciador de layout GridBagLayout é um dos mais complexos e mais flexíveis. Embora possa parecer, esta classe não é uma sub-classe de GridLayout, como mostra sua posição na hierarquia de classes 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 ---------------------------------------------------------------------- java.lang.Object java.awt.GridBagLayout Esta classe implementa as interfaces LayoutManager, LayoutManager2 e Serializable. A vantagem do gerenciador de layout GridBagLayout em relação ao GridLayout, é que, com o GridBagLayout nós podemos fazer com que os componentes nas linhas e colunas possam ter diferentes tamanhos e às vezes ocupar múltiplas linhas e colunas. O trecho de código abaixo mostra a forma mais simples de se criar um GridBagLayout. Veja que os botões são arranjados de forma horizontal na janela. É claro que sem os ajustes necessários, não tiramos muito proveito do uso deste gerenciador (mas isso será visto em outras dicas dessa seção): ---------------------------------------------------------------------- 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.*; import java.awt.*; public class Estudos extends JFrame{ public Estudos(){ super("Como usar a classe GridBagLayout"); // define o layout setLayout(new GridBagLayout()); // adiciona componentes à janela add(new JButton("Botão 1")); add(new JButton("Botão 2")); add(new JButton("Botão 3")); add(new JButton("Botão 4")); setSize(350, 150); setVisible(true); } public static void main(String args[]){ Estudos app = new Estudos(); app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } Ao executar este código Java Swing nós teremos o seguinte resultado: ![]() |
Java ::: Coleções (Collections) ::: ArrayList |
Como testar se a ArrayList do Java está vazia usando a função isEmpty() - Java ArrayList para iniciantesQuantidade de visualizações: 18820 vezes |
Neste exemplo mostrarei como usar o método isEmpty() da classe ArrayList para verificar se a lista está vazia, ou seja, não contem nenhum elemento. Este método retorna true se a ArrayList estiver vazia e false em caso contrário. Veja o exemplo a seguir: ---------------------------------------------------------------------- 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_java; import java.util.ArrayList; public class Estudos{ public static void main(String[] args){ // cria uma ArrayList que conterá strings ArrayList<String> nomes = new ArrayList<>(); // adiciona itens na lista nomes.add("Carlos"); nomes.add("Maria"); nomes.add("Fernanda"); nomes.add("Osmar"); nomes.add("Maria"); // Verifica se a ArrayList está vazia if(nomes.isEmpty()){ System.out.println("A ArrayList está vazia."); } else{ System.out.println("A ArrayList não está vazia."); } System.exit(0); } } Ao executar este código Java nós teremos o seguinte resultado: A ArrayList não está vazia. |
Java ::: Dicas & Truques ::: Trigonometria - Funções Trigonométricas |
Como calcular o cateto oposto dadas as medidas da hipotenusa e do cateto adjascente em JavaQuantidade de visualizações: 2032 vezes |
Todos estamos acostumados com o Teorema de Pitágoras, que diz que "o quadrado da hipotenusa é igual à soma dos quadrados dos catetos". Baseado nessa informação, fica fácil retornar a medida do cateto oposto quando temos as medidas da hipotenusa e do cateto adjascente. Isso, claro, via programação em linguagem Java. Comece observando a imagem a seguir: ![]() Veja que, nessa imagem, eu já coloquei os comprimentos da hipotenusa, do cateto oposto e do cateto adjascente. Para facilitar a conferência dos cálculos, eu coloquei também os ângulos theta (que alguns livros chamam de alfa) e beta já devidamente calculados. A medida da hipotenusa é, sem arredondamentos, 36.056 metros. Então, sabendo que o quadrado da hipotenusa é igual à soma dos quadrados dos catetos (Teorema de Pitógoras): \[c^2 = a^2 + b^2\] Tudo que temos que fazer é mudar a fórmula para: \[a^2 = c^2 - b^2\] Veja que agora o quadrado do cateto oposto é igual ao quadrado da hipotenusa menos o quadrado do cateto adjascente. Não se esqueça de que a hipotenusa é o maior lado do triângulo retângulo. Veja agora como esse cálculo é feito em linguagem 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 arquivodecodigos; public class Estudos{ public static void main(String args[]){ double c = 36.056; // medida da hipotenusa double b = 30; // medida do cateto adjascente // agora vamos calcular a medida da cateto oposto double a = Math.sqrt(Math.pow(c, 2) - Math.pow(b, 2)); // e mostramos o resultado System.out.println("A medida do cateto oposto é: " + a); } } Ao executar este código Java nós teremos o seguinte resultado: A medida do cateto oposto é: 20.00087838071118 Como podemos ver, o resultado retornado com o código Java confere com os valores da imagem apresentada. |
Java ::: Fundamentos da Linguagem ::: Modificadores |
Programação Orientada a Objetos em Java - Como usar o modificador de acesso public da linguagem JavaQuantidade de visualizações: 9984 vezes |
O modificador de acesso public é aquele que permite o maior grau de acesso a um recurso Java (um recurso é uma classe, um método ou uma variável). O único modificador de acesso permitido a uma classe não interna é public. Não é permitido usar outro modificador. Na ausência do modificador public, o acesso à classe será de pacote (package). Quando usamos este modificador, as classes, métodos e variáveis podem ser acessadas a partir de qualquer outra classe sem qualquer restrição. Além disso, um método public pode ser sobrescrito (sofrer override) por qualquer subclasse da classe que o declara. O método main() da aplicação é declarado public para que o ambiente de execução Java tenha acesso a ele. Declará-lo de outra forma fará com que a execução da aplicação se torne impossível. Veja um exemplo de uma classe Java pública, com uma variável de instância pública e um método também público: ---------------------------------------------------------------------- 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; // uma classe pública public class Cliente { // uma variável pública public int codigo; // um construtor público public Cliente(){ this.codigo = 532; } // um método público public int obterCodigoCliente(){ return this.codigo; } } |
Java ::: Pacote java.awt.event ::: KeyEvent |
Java Swing para iniciantes - Como usar o método getKeyCode() da classe KeyEvent para detectar qual tecla de direção (setas) foi pressionadaQuantidade de visualizações: 3323 vezes |
Em algumas situações nós precisamos detectar qual das teclas de direção (setas) o usuário pressionou. Para isso podemos usar o método getKeyCode() da classe KeyEvent e testar se o código equivale a uma das constantes KeyEvent.VK_UP, KeyEvent.VK_DOWN, KeyEvent.VK_RIGHT ou KeyEvent.VK_LEFT. Veja 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.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){ switch(e.getKeyCode()){ // seta para cima case KeyEvent.VK_UP: JOptionPane.showMessageDialog(null, "A seta para cima foi pressionada"); break; // seta para baixo case KeyEvent.VK_DOWN: JOptionPane.showMessageDialog(null, "A seta para baixo foi pressionada"); break; // seta para a direita case KeyEvent.VK_RIGHT: JOptionPane.showMessageDialog(null, "A seta para a direita foi pressionada"); break; // seta para a esquerda case KeyEvent.VK_LEFT: JOptionPane.showMessageDialog(null, "A seta para a esquerda foi pressionada"); break; default: JOptionPane.showMessageDialog(null, "Nenhuma tecla de direção foi pressionada"); break; } } @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 de direção podem ser detectadas somente nos eventos keyPressed e keyReleased. |
Java ::: Pacote java.awt.event ::: KeyEvent |
Java Swing - Como obter o caractere da tecla pressionada usando o método getKeyChar() da classe KeyEvent do JavaQuantidade de visualizações: 3045 vezes |
Em algumas situações nós precisamos obter o caractere da tecla pressionada em nossas aplicações Java Swing. Para isso podemos usar o método getKeyChar() da classe KeyEvent. Veja sua assinatura:public char getKeyChar() O retorno do método é um char representando o caractere associado à tecla "digitada" (pressionada e liberada). Veja um trecho de código no qual temos uma janela JFrame que implementa a interface KeyListener e reage ao evento keyTyped() mostrando a letra digitada: ---------------------------------------------------------------------- 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){ // sem implementação } @Override public void keyReleased(KeyEvent e){ // sem implementação } @Override public void keyTyped(KeyEvent e){ // vamos obter o caractere que foi digitado char letra = e.getKeyChar(); // mostra o caractere digitado JOptionPane.showMessageDialog(null, "O caractere pressionado foi: " + letra); } public static void main(String args[]){ Janela j = new Janela(); j.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } É importante observar que o valor retornado pelo método getKeyChar() só possui sentido quando usado com eventos KEY_TYPED, uma vez que o caractere não é exibido quando o método é usado com os eventos KEY_PRESSED e KEY_RELEASED. Note ainda que a tecla Shift pode ser usada durante este evento. Assim, se combinarmos Shift + "s", o retorno será "S". Este método retorna o valor da constante KeyEvent.CHAR_UNDEFINED se um caractere Unicode válido não existir para o evento de "digitação" da tecla. |
Desafios, Exercícios e Algoritmos Resolvidos de Java |
Veja mais Dicas e truques de Java |
Dicas e truques de outras linguagens |
HTML5 - HTML5 para iniciantes - Como usar a meta tag viewport para controlar o layout de suas páginas HTML |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |