Listar conteúdo do diretório no jComboBox

2 respostas
mar0580

Boa tarde pessoal!
Se possível poderiam me ajudar em como posso fazer para popular a jComboBox com os nomes de pastas do meu diretório, o diretório eu sei listar com printf... mas adicionar na combo ainda não consegui. O código se abaixo, só preciso da ajuda de vcs para inserir os nomes na combo. Valeu pela atenção.

public void listaConteudo() {

        File arquivo = new File("\\\\siscanctd\\dados\\prod\\D\\Script2\\Clients");
        File[] file = arquivo.listFiles();

        if (file != null) {

            int length = file.length;

            for (int i = 0; i < length; ++i) {

                File f = file[i];

                if (f.isFile()) {

                    //Como se implementa para adicionar o conteúdo do diretorio na combo?

                } else if (f.isDirectory()) {

               
                }
            }
        }
    }

2 Respostas

vanderlanio

Algo assim :

private JComboBox getCombo() {
		if (combo == null) {
			combo = new JComboBox();
			combo.setModel(getModelo());
			

		}
		return combo;
	}


private DefaultComboBoxModel getModelo() {
		DefaultComboBoxModel modelo = new DefaultComboBoxModel();
		try {
			List<String> arquivos = listaConteudo()
			modelo.addElement("Escolha");
			for (String arquivo : arquivos) {
				modelo.addElement(arquivo);
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		return modelo;
	}

Vc tb pode fazer o listaConteudo() retorna um Vector ou um array e já passa no construtor ! Fica ao gosto do fregues rs

mar0580

Obrigado pela atenção, mas eu gostaria de saber se posso popular meu jComboBox1 já dentro do meu listaConteudo().

É preciso encapsular o combo (get e set)?

import java.io.File;
import java.util.List;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JComboBox;

public class ServiceControlUI extends javax.swing.JFrame {

    /** Creates new form ServiceControlUI */
    public ServiceControlUI() {
        initComponents();
    }

    public void listaConteudo() {

        File arquivo = new File("\\\\siscanctd\\dados\\prod\\D\\Script2\\Clients");
        File[] file = arquivo.listFiles();     
        

        if (file != null) {

            int length = file.length;

            for (int i = 0; i < length; ++i) {

                File f = file[i];

                if (f.isFile()) {

                    jComboBox2.addItem(f.getName()); // mais ou menos isso?

                } else if (f.isDirectory()) {
                    
                }
            }
        }
    }
Criado 28 de março de 2011
Ultima resposta 28 de mar. de 2011
Respostas 2
Participantes 2