Você está aqui: Java ::: Classes e Componentes ::: JTextArea |
Como ordenar as linhas de um JTextArea (ordem alfabética)Quantidade de visualizações: 9560 vezes |
// Este exemplo mostra como ordenar alfabeticamente as // linhas de um JTextArea import javax.swing.*; import javax.swing.text.*; import java.awt.*; import java.awt.event.*; import java.util.*; public class Estudos extends JFrame{ JTextArea textArea; JButton btn; public Estudos() { super("Ordenando as linhas de um JTextArea"); Container c = getContentPane(); FlowLayout layout = new FlowLayout(FlowLayout.LEFT); c.setLayout(layout); textArea = new JTextArea(10, 20); textArea.setLineWrap(true); btn = new JButton("Ordenar Linhas"); btn.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e){ int quant = textArea.getLineCount(); ArrayList lista = new ArrayList(); // obtém todas as linhas de texto do JTextArea for(int i = 0; i < quant; i++){ try{ int inicio = textArea.getLineStartOffset(i); int fim = textArea.getLineEndOffset(i); String linha = textArea.getText(inicio, fim - inicio); linha = linha.replace(" ", ""); lista.add(linha); } catch(BadLocationException ble){ // possiveis erros são tratados aqui } } // limpa o JTextArea textArea.setText(""); // ordena as linhas Collections.sort(lista); // coloca as linhas de volta no JTextArea StringBuffer texto = new StringBuffer(); for(int i = 0; i < lista.size(); i++) { texto.append(lista.get(i).toString() + ' '); } textArea.setText(texto.toString()); } }); c.add(textArea); 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 ::: Internet, LAN e E-Mail |
Exercícios Resolvidos de Java - Como testar se há um serviço sendo executado em uma porta de um servidor ou máquina localQuantidade de visualizações: 7492 vezes |
Pergunta/Tarefa: Este exercício resolvido é sobre Internet, Rede e E-Mail usando programação Java. Escreva um programa Java console ou GUI que peça ao usuário para informar um número de porta na máquina local. Em seguida, tente se conectar a esta porta e informe se há algum serviço sendo executado na porta informada. A entrada e saída do programa pode ser algo como: Informe o número da porta a ser pesquisada: 3306 Há um serviço na porta informada Informe o número da posta a ser pesquisada: 2040 Não há nenhum serviço na porta informada 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.io.IOException; import java.net.Socket; import java.net.UnknownHostException; import java.util.Scanner; public class Main { public static void main(String[] args){ Socket socket; // vamos declarar um objeto da classe Socket String host = "localhost"; // define o nome da máquina host // vamos pedir ao usuário que informe a porta a ser pesquisada Scanner entrada = new Scanner(System.in); System.out.print("Informe o número da posta a ser pesquisada: "); int porta = Integer.parseInt(entrada.nextLine()); // vamos verificar se há algum serviço na porta informada try{ socket = new Socket(host, porta); System.out.println("Há um serviço na porta informada"); } catch (UnknownHostException e) { // não foi possível encontrar a máquina host System.out.println("Não foi possível encontrar a máquina host: " + e); } catch (IOException e) { System.out.println("Não há nenhum serviço na porta informada"); } } } Veja que, neste exercício, podemos ter o surgimento de duas exceções: UnknownHostException (a máquina informada não pôde ser encontrada) e IOException (houve erro de entrada e/ou saída). Por esta razão, é uma boa idéia envolver o código em um bloco try...catch. |
Java ::: Classes e Componentes ::: JTable |
Java Swing Avançado - Como exibir imagens nas células de uma JTable em suas aplicações Java SwingQuantidade de visualizações: 14982 vezes |
Nesta dica mostrarei como criar uma classe personalizada que estende a classe JLabel e implementa a interface TableCellRenderer. O objetivo é fornecer esta JLabel ao método setCellRenderer() de uma das colunas da JTable e exibir uma imagem ou foto ao lado do conteúdo da célula. Veja o resultado da figura abaixo: ![]() E aqui está 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 ---------------------------------------------------------------------- package arquivodecodigos; import javax.swing.*; import java.awt.*; import javax.swing.table.*; public class Estudos extends JFrame{ public Estudos(){ super("Exemplo de uma tabela simples"); // colunas da tabela String[] colunas = {"Nome", "Idade", "Sexo"}; // conteúdo da tabela Object[][] conteudo = { {"Osmar J. Silva", "32", "Masculino"}, {"Maria Clara Gomes", "19", "Feminino"}, {"Fernando Gomes", "15", "Masculino"}, {"Carlos Vieira", "40", "Masculino"} }; // constrói a tabela JTable tabela = new JTable(conteudo, colunas); // quero exibir imagens ao lado do texto da primeira coluna TableCellRenderer tcr = new Imagem(); TableColumn column = tabela.getColumnModel().getColumn(0); column.setCellRenderer(tcr); tabela.setPreferredScrollableViewportSize(new Dimension(350, 50)); Container c = getContentPane(); c.setLayout(new FlowLayout()); JScrollPane scrollPane = new JScrollPane(tabela); c.add(scrollPane); setSize(400, 300); setVisible(true); } public static void main(String args[]){ Estudos app = new Estudos(); app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } class Imagem extends JLabel implements TableCellRenderer{ public Imagem(){ setOpaque(true); } public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column){ Icon imagem = new ImageIcon("C:\\estudos_java\\icon.gif"); // certifique-se da existencia da imagem "icon.gif" antes de executar if(isSelected) setBackground(table.getSelectionBackground()); else setBackground(table.getBackground()); setIcon(imagem); setText(value.toString()); return this; } public void validate() {} public void revalidate() {} protected void firePropertyChange(String propertyName, Object oldValue, Object newValue) {} public void firePropertyChange(String propertyName, boolean oldValue, boolean newValue) {} } |
Java ::: Dicas & Truques ::: Threads |
Como usar uma thread Java para animar o título de uma janela JFrame do Java SwingQuantidade de visualizações: 11486 vezes |
Nesta dica mostro como podemos usar uma thread para substituir um timer em uma aplicação Swing. Ao executar este código você verá que o texto da barra de títulos da aplicação pisca continuamente enquanto o aplicativo estiver sendo executado. Veja a listagem 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 java.awt.*; import javax.swing.*; public class Estudos extends JFrame{ public Estudos() { super("Uso de threads em aplicações Swing"); // vamos criar a thread que fará o título da janela // piscar continuamente // vamos criar duas threads MinhaThread t1 = new MinhaThread(this); t1.start(); setSize(350, 250); setVisible(true); } public static void main(String args[]){ Estudos app = new Estudos(); app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } // classe que usaremos como thread class MinhaThread extends Thread{ private JFrame janela; private String titulo; public MinhaThread(JFrame janela){ this.janela = janela; this.titulo = janela.getTitle(); } public void run(){ try{ while(true){ if(janela.getTitle().equals("")) janela.setTitle(titulo); else janela.setTitle(""); Thread.sleep(300); } } catch(InterruptedException ex){ // precisa fazer nada aqui } } } Um detalhe interessante é que, ao ser colocada para dormir, a thread usada no exemplo permite que as demais threads da aplicação continuem suas execuções normalmente. Isso permite que a janela seja movida, redimensionada, minimizada, etc. Lembre-se sempre de usar o método Thread.yield() caso a thread criada estiver executando alguma ação demorada. Isso evitará que a janela do programa pareça congelada. |
Java ::: Dicas & Truques ::: Strings e Caracteres |
Como remover quebras de linhas de uma string - Como usar o método replaceAll() da classe String para remover quebras de linha de um texto - RevisadoQuantidade de visualizações: 112 vezes |
Nesta dica eu mostro como podemos usar o método replaceAll() da classe String para remover quebras de linha de uma palavra, frase ou texto. Veja:---------------------------------------------------------------------- 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 original = "Programar em Java\n é mais fácil do\n que você pensa."; // vamos exibir a String original System.out.println("Original: " + original); // agora vamos remover as quebras de linha String nova = original.replaceAll("[\\n]", ""); // vamos exibir a String sem as quebras de linha System.out.println("Sem quebras de linha: " + nova); System.exit(0); } } Este código exibirá o seguinte resultado: Original: Programar em Java é mais fácil do que você pensa. Sem quebras de linha: Programar em Java é mais fácil do que você pensa. Esta dica foi revisada e atualizada para o Java 8. |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Laços de Repetição |
Exercícios Resolvidos de Java - Ler a idade e o peso de 10 pessoas e mostrar a quantidade de pessoas com mais de 80 quilos e a média das idadesQuantidade de visualizações: 2036 vezes |
Pergunta/Tarefa: Escreva um programa Java que receba a idade (como int) e o peso (como double) de 10 pessoas. Em seguida calcule e mostre: 1) A quantidade de pessoas com mais de 80 quilos; 2) A média das idades das pessoas. Sua saída deve ser parecida com: Informe a idade da 1.a pessoa: 95 Informe o peso da 1.a pessoa: 83 Informe a idade da 2.a pessoa: 45 Informe o peso da 2.a pessoa: 115 Informe a idade da 3.a pessoa: 83 Informe o peso da 3.a pessoa: 76 Informe a idade da 4.a pessoa: 19 Informe o peso da 4.a pessoa: 79 Informe a idade da 5.a pessoa: 40 Informe o peso da 5.a pessoa: 93 Quantidade de pessoas com mais de 80 quilos: 3 Média das idades das pessoas: 56.4 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; import java.util.Scanner; public class Estudos { public static void main(String[] args) { // para ler a entrada do usuário Scanner entrada = new Scanner(System.in); int quant_acima_80_kg = 0; // quantidade de pessoas acima de 80 quilos int soma_idades = 0; // soma das idades para depois obter a média // vamos ler os dados das 5 pessoas for(int i = 0; i < 5; i++){ System.out.print("Informe a idade da " + (i + 1) + ".a pessoa: "); int idade = Integer.parseInt(entrada.nextLine()); System.out.print("Informe o peso da " + (i + 1) + ".a pessoa: "); double peso = Double.parseDouble(entrada.nextLine()); // vamos somar mais esta idade soma_idades = soma_idades + idade; // esta pessoa possui mais de 80 quilos? if(peso > 80){ // aumenta o contador de pessoas acima de 80 quilos quant_acima_80_kg++; } // adiciona uma quebra de linha System.out.println(); } // e agora mostramos o resultado System.out.println("Quantidade de pessoas com mais de 80 quilos: " + quant_acima_80_kg); System.out.println("Média das idades das pessoas: " + (soma_idades / 5.0)); } } |
Java ::: Pacote java.lang ::: Integer |
Java Básico - Como usar a constante SIZE da classe Integer para obter a quantidade de bits necessária para armazenar um intQuantidade de visualizações: 6756 vezes |
Em algumas situações gostaríamos de obter a quantidade de bits necessária para armazenar um valor do tipo int (inteiro). Para isso podemos usar a constante SIZE da classe Integer (uma classe wrapper que encapsula o valor primitivo int). Veja como isso pode ser feito:---------------------------------------------------------------------- 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) { // vamos obter a quantidade de bits necessária para representar um int int quantBits = Integer.SIZE; // o resultado System.out.println("Um int ocupa " + quantBits + " bits, ou seja, " + (quantBits / 8) + " bytes"); } } Ao executarmos este código o resultado será: Um int ocupa 32 bits, ou seja, 4 bytes. |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes) |
Exercícios Resolvidos de Java - Escreva um programa Java para mover todos os zeros para o final do vetor, sem alterar a ordem dos elementos já presentes no arrayQuantidade de visualizações: 624 vezes |
Pergunta/Tarefa: Dado o seguinte vetor de inteiros: // vamos declarar e construir um vetor de 8 inteiros int valores[] = {0, 3, 0, 5, 7, 4, 0, 9}; Sua saída deverá ser parecida com: Vetor na ordem original: 0 3 0 5 7 4 0 9 Vetor com os zeros deslocados para o final: 3 5 7 4 9 0 0 0 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 exercicio; public class Exercicio { public static void main(String[] args) { // vamos declarar e construir um vetor de 8 inteiros int valores[] = {0, 3, 0, 5, 7, 4, 0, 9}; // vamos mostrar o vetor na ordem original System.out.println("Vetor na ordem original:\n"); for(int i = 0; i < valores.length; i++){ System.out.print(valores[i] + " "); } // vamos inicializar j como 0 para que ele aponte para // o primeiro elemento do vetor int j = 0; // agora o laço for percorre todos os elementos do vetor, // incrementanto a variável i e deixando o j em 0 for(int i = 0; i < valores.length; i++){ // encontramos um valor que não é 0 if(valores[i] != 0){ // fazemos a troca entre os elementos nos índices // i e j int temp = valores[i]; valores[i] = valores[j]; valores[j] = temp; // e avançamos o j para o elemento seguinte j++; } } // agora mostramos o resultado System.out.println("\n\nVetor com os zeros deslocados para o final:\n"); for(int i = 0; i < valores.length; i++){ System.out.print(valores[i] + " "); } System.out.println(); } } Não se esqueça: A resolução do exercício deve ser feita sem a criação de um vetor, array ou lista adicional, e os elementos diferentes de zero devem permanecer na mesma ordem que eles estavam antes. |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Métodos, Procedimentos e Funções |
Exercício Resolvido de Java - Escreva uma função Java que recebe três números inteiros e retorna o menor delesQuantidade de visualizações: 946 vezes |
Pergunta/Tarefa: Escreva um programa Java que contenha um método ou função que recebe três números inteiros e retorne o menor deles como um inteiro. Seu método não deve produzir nenhuma saída, apenas retornar o menor número entre os três argumentos fornecidos. Sua saída deverá ser parecida com: Informe o primeiro número: 8 Informe o segundo número: 10 Informe o terceiro número: 7 O menor número é: 7 Veja a resolução comentada deste exercício em 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; import java.util.Scanner; public class Estudos { public static void main(String[] args) { // para ler a entrada do usuário Scanner entrada = new Scanner(System.in); // vamos pedir para o usuário informar três // números inteiros System.out.print("Informe o primeiro número: "); int n1 = Integer.parseInt(entrada.nextLine()); System.out.print("Informe o segundo número: "); int n2 = Integer.parseInt(entrada.nextLine()); System.out.print("Informe o terceiro número: "); int n3 = Integer.parseInt(entrada.nextLine()); // agora vamos calcular o menor número int menorNumero = menor(n1, n2, n3); // e mostramos o resultado System.out.println("O menor número é: " + menorNumero); } // método que recebe três números e retorna o menor deles public static int menor(int a, int b, int c){ return Math.min(Math.min(a, b), c); } } |
Vamos testar seus conhecimentos em Ética e Legislação Profissional |
Postura ética profissional A resolução de dilemas éticos deve ser resultado de um processo de reflexão e análise, integrando valores morais e fatos para buscar uma solução moralmente correta. Segundo Holtzapple e Reece (2006), quais os aspectos fundamentais para a resolução de dilemas éticos? Assinale a alternativa correta: A) Ter clareza moral, ter clareza conceitual, manter-se parcial, conhecer todas as alternativas viáveis, ter razoabilidade. B) Ter clareza moral, ter imprecisão conceitual, manter-se atualizado, conhecer todas as alternativas viáveis, ter razoabilidade. C) Ter clareza moral, ter clareza conceitual, manter-se parcial, considerar exclusivamente as alternativas lucrativas, ter razoabilidade. D) Ter variabilidade moral, ter clareza conceitual, manter-se alheio, conhecer todas as alternativas viáveis, ter razoabilidade. E) Ter clareza moral, ter clareza conceitual, manter-se atualizado, conhecer todas as alternativas viáveis, ter razoabilidade. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Ética e Legislação Profissional |
O código de ética profissional: Concorrência A estrutura de mercado denominada "livre concorrência" tem como principal característica a competição empresarial de maneira correta, transparente e honesta. Nesse ambiente, é necessária a regulamentação da economia por parte do Estado, pois isso gera benefícios aos consumidores. Marque a alternativa que apresenta os benefícios decorrentes da regulamentação. A) A coletividade passa a contar com mais opções de produtos importados, preços e qualidade, além de oferecer às empresas um ambiente econômico saudável. B) A coletividade passa a contar com mais opções de produtos, preços e menos rigor na qualidade, além de oferecer às empresas um ambiente econômico saudável. C) A coletividade passa a contar com mais opções de produtos, preços e qualidade, além de oferecer às empresas um ambiente econômico monopolista. D) A coletividade passa a contar com mais opções de produtos, preços e qualidade, além de oferecer às empresas um ambiente econômico saudável. E) Os Estados menos desenvolvidos passam a contar com isenção de impostos, mais opções de produtos, preços e qualidade, além de oferecer às empresas um ambiente econômico saudável. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Hidrologia |
O método racional é muito utilizado na determinação de vazão máxima de projeto para pequenas bacias hidrográficas. Uma bacia hidrográfica com área de 100 ha, coeficiente de escoamento médio de 0,6, recebeu uma precipitação intensa de 120 mm/h, resultando em uma vazão de pico de 20 m3/s. Qual a vazão de pico para a mesma bacia hidrográfica se ocorresse uma precipitação de 90 mm/h. A) 30 m3/s. B) 20 m3/s. C) 10 m3/s. D) 5 m3/s. E) 15 m3/s. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Fenômeno de Transportes e Hidráulica |
Equação de Manning A equação de Manning é uma expressão empírica que se aplica ao fluxo uniforme em canais abertos, relacionando a velocidade do fluido, a área da seção e a inclinação do canal. Sobre a fórmula de Manning, selecione a alternativa correta. A) O valor do coeficiente de rugosidade n representa a perda de carga localizada, uma vez que se refere à interferência do atrito nas paredes das tubulações e canais de condução de fluidos. B) A fórmula de Manning só apresenta resultados precisos para canais naturais, sendo os artificiais complexos, pois o coeficiente de rugosidade n varia na produção do material. C) O valor do coeficiente de rugosidade n representa a perda de carga distribuída atribuída ao atrito e é sempre calculado em campo para que erros associados a ele sejam minimizados. D) Em canais artificiais, o valor do coeficiente de Manning n representa a perda de carga causada apenas pelas paredes, se fazendo necessário aplicar uma correção para o fundo do canal. E) A fórmula de Manning fornece resultados confiáveis para os canais naturais ou artificiais e o coeficiente de rugosidade n representa a perda de carga distribuída relacionada ao atrito. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Ética e Legislação Profissional |
Noções de licitação pública Licitação pública é o procedimento por meio do qual a administração pública adquire ou vende bens e contrata serviços. Sobre a licitação pública, assinale a alternativa correta. A) É dever do órgão licitante garantir a igualdade entre os competidores durante todo o certame a fim de assegurar a isonomia, que é um princípio fundamental do processo licitatório. B) Na legislação que regulamenta as licitações, não há previsão para o estabelecimento, nos processos licitatórios, de margem de preferência para bens e serviços com tecnologia desenvolvida no Brasil. C) É prevista em lei a permissão para a realização de licitação cujo objeto inclua bens sem similaridade ou de marcas, de características e de especificações exclusivas, salvo em casos específicos previstos em legislação. D) Na aquisição pública de materiais mediante processo licitatório, a administração pública pode descumprir as normas e as condições do edital, visando à celeridade no recebimento dos materiais. E) A licitação é um procedimento utilizado para dar a oportunidade aos vários interessados em manifestar propostas à administração pública, que, ao final, vai selecionar a considerada mais barata. Verificar Resposta Estudar Cards Todas as Questões |
Mais Desafios de Programação e Exercícios e Algoritmos Resolvidos de Java |
Veja mais Dicas e truques de Java |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |