Tablemodel + resultset

7 respostas
G

Boa Noite,

Como e que posso fazer o tablemodel receber um arraylist de um resultset

DB

ArrayList ut = new ArrayList();
    public ArrayList updateUtente(){
        Conectar();
        try {
            ps = con.prepareStatement("select * from ut");
            rs = ps.executeQuery();        
            while(rs.next()){                
                ut.add(rs.getString("nome"));
                ut.add(rs.getString("morada"));               
            }            
        } catch (SQLException e){
            System.out.println("Erro");
        } finally {
            Desconectar();
        }
        return ut;
    }

TAbleModel

public class TabelaModel extends AbstractTableModel {
  private Hashtable hash;
  private final int linhas;
  private final int colunas;
  private final String titulo[];
  public TabelaModel(int linha, String colunaTitulo[]) {
    this.linhas = linha;
    this.colunas = colunaTitulo.length;
    titulo = colunaTitulo;
    hash = new Hashtable();
  }
  public int getColumnCount() {
    return colunas;
  }
  public int getRowCount() {
    return linhas;
  }
  public String getColumnName(int coluna) {
    return titulo[coluna];
  }
  public Object getValueAt(int linha, int coluna) {
    return hash.get(new Point(linha, coluna));
  }
  public void setValueAt(Object value, int linha, int coluna) {
    if ((linhas < 0) || (colunas < 0)) {
      throw new IllegalArgumentException("Invalid row/column setting");
    }
    if ((linha < linhas) && (coluna < colunas)) {
      hash.put(new Point(linha, coluna), value);
    }
  }
}
String[] teste = { "nome", "morada"};      
        TableModel modelo = new TabelaModel(10, teste);
        JTable table = new JTable(modelo);   
        UtenteDB ut = new UtenteDB();
        ArrayList test = ut.updateUtente();
       // for(int i = 0; i < test.size(); i++){
         //   modelo.setValueAt(test.get(i), i, i);
       // }

Como faço para listar na tabela??

Grato e Bom Natal:)

7 Respostas

U

Opa, tchê

Dê uma verifica nesse link http://www.java2s.com/Code/Java/Swing-JFC/StockTable6ActionandDynamicDisplay.htm. Aqui tem um exemplo do que tu queres e alguns outros exemplos.

Espero ter ajudado.
Ulisses

Marky.Vasconcelos

O interessante seria voce fazer com que o método updateUtente retorna-se List pois trabalhar com objetos é mais facil. Do modo que esta cada duas posições da lista é um objeto

G

Como faria isso ?

será que pode dar um exemplozinho:P

Grato

Marky.Vasconcelos

Por exemplo.

List<Utente> ut = new ArrayList<Utente>();
    public List<Utente> updateUtente(){
        Conectar();
        try {
            ps = con.prepareStatement("select * from ut");
            rs = ps.executeQuery();        
            while(rs.next()){
                Utente utente = new Utente();
                utente.setNome(rs.getString("nome"));
                utente.setMorada(rs.getString("morada"));
                ut.add(utente);             
            }            
        } catch (SQLException e){
            e.printStackTrace();
        } finally {
            Desconectar();
        }
        return ut;
    }

E acredito que voce tenha uma classe Utente com os atributos nome e morada com o respectivos getters e setters.

G

Muito obrigado Mark,

sim tenho os getters e os setters

Estaria abusar muito se pedisse um exemplozinho de como listar a list no jtable?? :roll:

Grato

Feliz natal :slight_smile: :slight_smile: :slight_smile: :slight_smile:

Marky.Vasconcelos

Me desculpa mas não tenho muito tempo procura o post do ViniGodoy sobre um JTable para Livros.

Voce vai entender como fazer a TableModel baseada em objetos.

Marky.Vasconcelos

O link é esse:
http://www.guj.com.br/posts/list/132698.java#714736

Criado 22 de dezembro de 2009
Ultima resposta 28 de dez. de 2009
Respostas 7
Participantes 3