JTable

13 respostas
Veneno

Bom dia …

Alguem poderia me ajudar?
eu tenho um ArrayList …
com alguns atributos…
e gostaria de preencher um JTable…
tava tentando fazer assim :

public void Tabela(){
        
    Banco banco = new Banco();
    ArrayList dados = banco.getDadosProd();
        
        for(int i=0; i<dados.size();i++){
        
        jTable1.getModel().setValueAt((((Cliente)dados.get(i)).nome),i,0);
        }
    }

eu chamo o metodo em um botão
mas nao deu certo…

Obrigado galera …

13 Respostas

silva.fernandes

Cara .. tenta assim ...

public void inserirDadosTabela(ResultSet rs) {

		try {

			ResultSetMetaData metaData = rs.getMetaData();

			// nome das colunhas
			String[] colunas = new String[metaData.getColumnCount()];

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

				colunas[i] = metaData.getColumnName(i + 1);

			}

			// cria um modelo
			DefaultTableModel modelo = new DefaultTableModel(colunas, 0);

			// preenche o modelo
			while (rs.next()) {

				// uma linha
				String[] linha = new String[colunas.length];

				// adiciona valores na linha
				for (int i = 0; i < colunas.length; i++) {

					linha[i] = rs.getString(i + 1);

				}

				// adiciona a linha
				modelo.addRow(linha);

			}

			// seta o modelo na tabela
			seuJTable.setModel(modelo);

		} catch (SQLException exc) {
			System.out.println(exc);
		}

	}

Ai vc chama esse método em seu botão ..

Qualquer coisa grita aeee

Veneno

aoba…

eu chamo o inserirDadosTabela();???
ow o Tabela ???
q parametro eu passo dentro do inserirDadosTabela(???); se for ele …
e o ArraList nao usa ??

vlw abraço !! :smiley:

simone.tafinel

silva,

wow! justo o q eu precisava!!! vlwwww!!!

Veneno

eu to usando aquela tabela pronta …
eh do msm jeito ???

Veneno

Alguem sabe ?

silva.fernandes

Desculpe a demora … mas para vc preencher esta JTable … faz assim …

Crie mais um método tipo assim …

// Método que envia informações do BD para a JTable public void BdFromJtable() { try { Conexao();// esse é o método q abre a conexão Statement stmt = con.createStatement(); ResultSet rs = stmt.executeQuery("SELECT * FROM USUARIO"); // essa Query é só um exemplo inserirDadosTabela(rs);// este é o método que preenche os valores da tabela rs.close(); con.close(); } catch (ClassNotFoundException cnfex) { cnfex.printStackTrace(); } catch (SQLException sqlex) { sqlex.printStackTrace(); } }

Ai no seu botão vc chama esse método q acabei de passar … mais ou menos assim …

jButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) { BdFromJtable(); } });

É claro q tudo isso é uma forma bem simples de se fazer … oq eu recomendo é depois refazer tudo usando a arquitetura MVC … (Model-view-controller )

OK

Good Luck

Veneno

Ae galera consegui fazer dessa forma …

public void Atualiza(){
      
        for(int i=0; i<dados.size();i++){
        
        jTable1.getModel().setValueAt((((Lista)dados.get(i)).Codigo),i,0);
        jTable1.getModel().setValueAt((((Lista)dados.get(i)).Nome),i,1);
        jTable1.getModel().setValueAt((((Lista)dados.get(i)).qtdMin),i,2);
        jTable1.getModel().setValueAt((((Lista)dados.get(i)).qtdAtual),i,3);
        }
    }

e chamo no Botão …
acho que ta certo …
vlw Muito Obrigado…

Veneno

Hum, tenho uma duvida …
alguem saberia como faz pra adicionar uma linha na jTable se minha ArrayList for maior que ela ???

Obrigadoo !!!

:smiley:

Veneno

não apenas uma linha …
tipo

enquanto minha Array for maior …

vlws

Veneno

olá galera será alguem poderia me ajudar nessa???

Veneno

Alguem sabe como eu posso resolver esse problema…???

obrigado

Veneno

olá galera to fazendo assim ...
axo q soh falta adicionar..
o que eu não estou conseguindo

alguem saberia ???

[code]
int L = jTable1.getRowCount();
DefaultTableModel modelo = (DefaultTableModel)jTable1.getModel();

if(L modelo.addRow(????????);//???????

}
Obrigado

Veneno

com isso alguem pode me ajudar ???

int tabela = jTable1.getRowCount(); 
        DefaultTableModel modelo = (DefaultTableModel)jTable1.getModel(); 

         while(tabela < dados.size() ){
            
           
            modelo.addRow(new Object [][] {{null, null, null, null,null,null}});
            break;
         } 
            for(int i=0; i<dados.size();i++){
            
                
             jTable1.getModel().setValueAt((((Lista)dados.get(i)).Codigo),i,0);
             jTable1.getModel().setValueAt((((Lista)dados.get(i)).Nome),i,1);
             jTable1.getModel().setValueAt((((Lista)dados.get(i)).Grupo),i,2);
             jTable1.getModel().setValueAt((((Lista)dados.get(i)).qtdMin),i,3);
             jTable1.getModel().setValueAt((((Lista)dados.get(i)).qtdAtual),i,4);
            // jTable1.getModel().setValueAt((((Lista)dados.get(i)).Fornecedor),i,5);
           
         
           }

ta adicionando uma linha soh …
o problema ta no while…
não sei como fazer pra ficar adicionando ateh q ambos sejam iguais…

obrigado…

Criado 21 de novembro de 2006
Ultima resposta 29 de nov. de 2006
Respostas 13
Participantes 3