Re: Listando arquivos como no Explorer

6 respostas
ranophoenix

Dê uma estudada no JTree do Swing.

6 Respostas

P

Não conheço nda pronto... mas vc poderia usar :

- um JList (Swing)
- a classe File (java.io.File)
---------ex : File drive[] = test.listFiles(); ae vc usaria este array para criar um ListModel para popular o List

- para colocar figuras vc poderia criar uma classe de renderização....

class jLt_ListaRenderer extends JLabel implements ListCellRenderer {
    
       	
       public jLt_ListaRenderer(){
           setOpaque(false);
       }
       
        public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
            String str = value.toString();
            
            
            JPImage i = new JPImage();
            
            if (str != null && str.length() > 1 && str.substring(0,1).equals(".")){
                setIcon( i.getIcon("ICONES/ico_open_folder.gif"));
                str = str.substring(1);
            }else

                setIcon( i.getIcon("ICONES/ico_folder.gif"));
            
             
            setText(str);
            if (isSelected){
                setForeground(list.getSelectionForeground());
                setBackground(list.getSelectionBackground());
            }else{
                setForeground(list.getForeground());
                setBackground(list.getBackground());
                
            }
            
           return this;
       }
   }
......
jList.setCellRenderer(new jLt_ListaRenderer());

ja da pra fazer alguma coisa

Lucas_Teixeira

Bom, você vai ter que usar em conjunto a JTree (para fazer a parte visual) e a classe File (para a leitura de arquivos/diretorios).
A cada clique na tua JTree, pegue o diretorio que foi selecionado e trabalhe com ele. Você pode usar o método listFiles() da classe File (pacote java.io). Com esse método, você obtêm como retorno, um array de todos os elementos dele (arquivos e diretórios), aí é só adicionar na tua JTree, e assim por diante.

P

ups...

esta é uma JPanel customizado para um projeto....
a função dele no contexto do exemplo que eu passei era de apenas para "pegar" um imagem

segue o codigo do exemplo do metodo getIcon(String)

public ImageIcon getIcon(String image) {
	    ImageIcon icon = (ImageIcon) cache.get(image);

	    if (icon == null) {
	      URL url = getClass()
	                  .getResource("/images/" + image);

	      if (url != null) {
	        icon = new ImageIcon(url);
	        cache.put(
	          image,
	          icon);
	      }
	    }

	    if (icon == null)
	    	return(getIcon("img_logo.jpg"));
	    
	    return icon;
	  }
theBalrog

Alguém conhece alguma classe que me ajude a fazer a listagem dos arquivos de um dado diretório, com ícones e tal? Gostaria que fosse como o Explorer do Windows

theBalrog

hmm… O JTree… Eu conheço …

Na verdade acho que eu me expressei mal…
No explorer temos à esquerda a árvore de diretórios (que é um JTree) e á direita eu tenho uma lista de arquivos e pastas no diretório escolhido à esquerda (na Tree)

O que eu quero fazer é a listagem de arquivos à direita…

theBalrog

pm, que classe é essa???

Criado 6 de junho de 2005
Ultima resposta 7 de jun. de 2005
Respostas 6
Participantes 4