Adicionando elementos num jtable com arraylist

4 respostas
welingtondias

Sou muito novato em Java e gostaria de saber o seguinte como adicionando elementos num jtable com arraylist?
Obs: No momento não estou usando nenhum BD.

Att.

4 Respostas

T

Cara, muita coisa que vc precisa saber sobre JTable, acessa http://www.guj.com.br/posts/list/13322.java.

welingtondias

Cara eu tentei de tudo para retornar o valor de um array mas não consegui, qdo utilizo o Object[][] no lugar do array list funciona, porém não atende as minhas necessidades. alguém pode me ajudar onde estou errando:

class MyTableModel extends AbstractTableModel {
		    private String[] columnNames = {"Coluna"};
		    private ArrayList data; 
		    
		    public int getColumnCount() {
		        return columnNames.length;
		    }

		    public int getRowCount() {
		        return data.size();
		    }

		    public String getColumnName(int col) {
		        return columnNames[col];
		    }

		    public Object getValueAt(int row, int col) {
		        return data[row][col];
		        
		    }
		}	
			JTable jt = new JTable();
		
		jt.setRowSelectionAllowed(false);
		jt.setModel(new MyTableModel());
		
		jcp=new JScrollPane();
		jcp.setBackground(Color.blue);
		jcp.setBounds(10,40,500,200);
		jcp.setViewportView(jt);
		principal.add(jcp);
T

Repare no método getValueAt da miha classe.

public class TelefoneTableModel extends AbstractTableModel {

    private List<TelefoneTO> telefones;
    private String[] colunas = {"Tipo", "Numero"};

    public TelefoneTableModel(List<TelefoneTO> telefones) {
        setTelefones(telefones);
    }

    public TelefoneTableModel() {
        getTelefones();
    }

    @Override
    public int getColumnCount() {
        return 2;
    }

    @Override
    public int getRowCount() {
        return telefones.size();
    }

    @Override
    public String getColumnName(int column) {
        return colunas[column];
    }

    @Override
    public Object getValueAt(int rowIndex, int columnIndex) {
        TelefoneTO telefoneTO = telefones.get(rowIndex);
        switch (columnIndex) {
            case 0:
                return telefoneTO.getTipoTelefone();
            case 1:
                return telefoneTO.getTel();
        }
        return null;
    }

    public List<TelefoneTO> getTelefones() {
        if (telefones == null) {
            telefones = new ArrayList<TelefoneTO>();
        }
        return telefones;
    }

    public void setTelefones(List<TelefoneTO> telefones) {
        this.telefones = telefones;
    }
}

Essa classe está funcionando perfeitamente em um projeto que estou desenvolvendo.
Espero que possa te ajudar.

welingtondias

Cara não estou conseguindo implementar como vc passou mas deu pra dar uma idéia. Vc teria outra idéia?

Criado 26 de maio de 2008
Ultima resposta 18 de jun. de 2008
Respostas 4
Participantes 2