Você está aqui: Java ::: Desafios e Lista de Exercícios Resolvidos ::: Arquivos e Diretórios

Como listar os arquivos de um diretório filtrados por extensão - Desafio de Programação Resolvido em Java

Quantidade de visualizações: 640 vezes
Pergunta/Tarefa:

Escreva um programa Java que pedirá para o usuário informar o nome de um diretório e um extensão. Em seguida seu código deverá listar todos os arquivos contidos no diretório que terminem com a extensão informada pelo usuário.

Sua saída deverá ser parecida com:

Informe o diretório: C:\estudos_java
Informe a extensão dos arquivos: .zip
arquivos_cliente.zip
exemplo_biblioteca.zip
download_arquivos.zip
Resposta/Solução:

Veja a resolução comentada deste exercício usando Java:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

package estudos;

import java.io.File;
import java.io.FilenameFilter;
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 o diretório
    System.out.print("Informe o diretório: ");
    String diretorioStr = entrada.nextLine();
    // vamos pedir para o usuário informar o diretório
    System.out.print("Informe a extensão dos arquivos: ");
    String extensao = entrada.nextLine();
    
    // vamos criar um File representando o diretório informado
    // pelo usuário
    File diretorio = new File(diretorioStr);
    // agora obtemos a lista de arquivos e diretórios contidos
    // no diretório informado
    String[] arquivos = diretorio.list(new FilenameFilter() {
      @Override
      public boolean accept(File diretorio, String nome) {
        if(nome.toLowerCase().endsWith(extensao)){
          return true;
        }
        else {
          return false;
        }
      }
    });
    
    // agora exibimos a lista de arquivos e diretórios obtida
    for(String nome : arquivos){
      System.out.println(nome);
    }
  }
}


Link para compartilhar na Internet ou com seus amigos:

Java ::: Java Swing - Componentes Visuais ::: JPanel

Como fazer uma sub-classe de JPanel para desenhar um gráfico no Java Swing

Quantidade de visualizações: 11865 vezes
Nesta dica mostrarei como podemos criar uma classe Desenho que herda da classe JPanel do Java Swing para criar uma área de desenho. Esta é uma das práticas mais comuns quando queremos desenhar gráficos ou exibir imagens em Java Swing.

Note como sobrescrevemos o método paintComponent(Graphics g) herdado da classe JPanel para pintar o fundo do painel na cor amarela e depois desenhamos um retângulo azul.

Veja o código Java Swing completo para o exemplo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

package estudos;

import java.awt.*;
import javax.swing.*;

public class Estudos extends JFrame{
  public Estudos() {
    super("A classe JPanel");
    
    Container c = getContentPane();
    Desenho desenho = new Desenho();
    c.add(desenho);

    setSize(350, 250);
    setVisible(true);
  }
  
  public static void main(String args[]){
    Estudos app = new Estudos();
    app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  }
}

// Sub-classe de JPanel
class Desenho extends JPanel{
  public void paintComponent(Graphics g){ 
    super.paintComponent(g);
    
    // Define a cor de fundo
    setBackground(Color.YELLOW);
    
    // Desenha um quadrado na cor azul
    g.setColor(Color.BLUE);
    g.fillRect(10, 10, 100, 100);
  } 
}



Java ::: Pacote java.awt.event ::: KeyEvent

Java Swing - Como detectar as teclas Insert ou Delete usando o método getKeyCode() da classe KeyEvent do Java

Quantidade de visualizações: 3161 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 com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

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 ::: Dicas & Truques ::: Aplicativos e Outros

Como calcular a distância entre dois pontos na terra em Java

Quantidade de visualizações: 1027 vezes
Nesta dica mostrarei como calcular a distância em quilômetros entre dois pontos na terra dadas suas latitudes e longitudes. Neste exemplo eu coloquei o valor de 6378.137 para o raio da terra, mas você pode definir para o valor que achar mais adequado.

O cálculo usado neste código se baseia na Fórmula de Haversine, que determina a distância do grande círculo entre dois pontos em uma esfera, dadas suas longitudes e latitudes.

Veja o código Java completo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

package estudos;

import java.util.Scanner;

public class Estudos {
  public static void main(String[] args) {
    // vamos usar a classe Scanner para ler os
    // valores de latitudes e longitudes
    Scanner entrada = new Scanner(System.in);
    
    System.out.print("Informe a primeira latitude: ");
    double lat1 = Double.parseDouble(entrada.nextLine());
    System.out.print("Informe a primeira longitude: ");
    double lon1 = Double.parseDouble(entrada.nextLine());
    System.out.print("Informe a segunda latitude: ");
    double lat2 = Double.parseDouble(entrada.nextLine());
    System.out.print("Informe a segunda longitude: ");
    double lon2 = Double.parseDouble(entrada.nextLine());
    
    // vamos calcular a distância entre os dois pontos em Kms
    double distancia = calcularDistancia(lat1, lat2, lon1, lon2);
    
    // mostramos o resultado
    System.out.println("A distância entre os dois pontos é: " +
      distancia + "kms");
       
    System.out.println("\n");
  }
  
  // função que recebe dois pontos na terra e retorna a distância
  // entre eles em quilômetros
  public static double calcularDistancia(double lat1,
    double lat2, double lon1, double lon2){
    
    double raio_terra = 6378.137; // raio da terra em quilômetros
    
    // o primeiro passo é converter as latitudes e longitudes
    // para radianos
    lon1 = Math.toRadians(lon1);
    lon2 = Math.toRadians(lon2);
    lat1 = Math.toRadians(lat1);
    lat2 = Math.toRadians(lat2);
 
    // agora aplicamos a Fórmula de Haversine
    double dlon = lon2 - lon1;
    double dlat = lat2 - lat1;
    double a = Math.pow(Math.sin(dlat / 2), 2) + Math.cos(lat1) * Math.cos(lat2)
      * Math.pow(Math.sin(dlon / 2),2);
             
    double c = 2 * Math.asin(Math.sqrt(a));
 
    // e retornamos a distância    
    return(c * raio_terra);
  }
}

Ao executar este código Java nós teremos o seguinte resultado:

Informe a primeira latitude: -16.674551
Informe a primeira longitude: -49.303598
Informe a segunda latitude: -15.579321
Informe a segunda longitude: -56.10009
A distância entre os dois pontos é: 736.9183827638687kms

Neste exemplo eu calculei a distância entre as cidades de Goiânia-GO e Cuiabá-MT.

A latitude é a distância ao Equador medida ao longo do meridiano de Greenwich. Esta distância mede-se em graus, podendo variar entre 0o e 90o para Norte(N) ou para Sul(S). A longitude é a distância ao meridiano de Greenwich medida ao longo do Equador.


Desafios, Exercícios e Algoritmos Resolvidos de Java

Veja mais Dicas e truques de Java

Dicas e truques de outras linguagens

Códigos Fonte

Programa de Gestão Financeira Controle de Contas a Pagar e a Receber com Cadastro de Clientes e FornecedoresSoftware de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento
Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidadesControle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades
Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: Delphi
6º lugar: C
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2025 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 85 usuários muito felizes estudando em nosso site.