jList recebendo array List

2 respostas
T

Oi gente, blz?

Estou com uma dúvida em uma negócio:

Tenho uma interface em swing que conecta-se a um banco de dados oracle.

Faço uma consulta no banco e retorno para a interface um arraylist bidimensional contendo dados da minha consulta. Populo o meu jList da seguinte maneira:

private void listMeter(JList jl) {

DefaultListModel meters = ( DefaultListModel ) jl.getModel();
    
    ArrayList listMeter  = new ArrayList();
    try {
        
        listMeter=(ArrayList)mn.sQuery();
        for(int i =0; i<listMeter.size();i++)   {
                
                 meters.addElement((String)((ArrayList)listMeter.get(i)).get(0));// 1 valor de cada array é o cadastro do medidor
        }
        
        
    } catch (SQLException ex) {
        Logger.getLogger(Frame_Medidor.class.getName()).log(Level.SEVERE, null, ex);
    } catch (IOException ex) {
        Logger.getLogger(Frame_Medidor.class.getName()).log(Level.SEVERE, null, ex);
    }

}

Funciona legal…

Depois, no método deste list, gostaria de pegar um dos componetes da lista (que é um arraylist também, lembrem-se, array bidimensional),
isto é, ítem que o usuário vai clicar, e mandar como parâmetro para um outro método.

Estou tentando usar:

ConectDB mn = new ConectDB();
mn.writeJob((List) jList1.getSelectedValue());

Dei um joption pane em (List) jList1.getSelectedValue() e mostrou o conteúdo.

Agora o método writejob, que recebe um list não aceita trabalhar com o q eu to mandando como parâmetro, ele dá a seguinte exceção:

Exception in thread “AWT-EventQueue-0” java.lang.ClassCastException: java.lang.String cannot be cast to java.util.List

O teste q eu fiz dentro do metodo que recebe o array, era apenas um sysoutprintln tentando varrer o arraylist recebido… mas deu problema também…

saberiam me dizer algum macete que eu poderia usar para faz um cast q funcione?

valeu

2 Respostas

ViniGodoy
  1. Ao incluir código, use a tag code:
seu código aqui
  1. Use listas sempre tipadas:
    List<String> lista = new ArrayList<String>();

  2. Se você inseriu Strings no seu model, não tem pq fazer o cast disse para list:
    mn.writeJob(b[/b] jList1.getSelectedValue());

M

Se você criasse seu ListModel, seu código ficaria mais limpo e sem necessidade de nenhum cast.

Criado 29 de janeiro de 2010
Ultima resposta 29 de jan. de 2010
Respostas 2
Participantes 3