Dê uma estudada no JTree do Swing.
Re: Listando arquivos como no Explorer
6 Respostas
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
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.
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;
}
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
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…
pm, que classe é essa???