Atualizar JTable com Bando de Dados

7 respostas
D

Ola pessoal... estou começando em java... por isso ainda tenho muitas duvidas =)
Bom... acontece que eu naum to conseguindo atualizar a Jtable, ela atualiza no banco de dados, mas na tela naum atualiza,
so e atualizada depois que reinicio o programa.

naum sei se ajuda mas uso o eclipse.

segue um trecho do jtable

private JScrollPane getJScrollPane() {
		if (jScrollPane == null) {
			jScrollPane = new JScrollPane();
			jScrollPane.setBounds(new Rectangle(17, 200, 453, 300));
			jScrollPane.setViewportView(getJTable());
		}
		return jScrollPane;
	}
public void mouseClicked(MouseEvent e) {
	
        if (e.getSource() == jTable){
			int line = jTable.getSelectedRow();
			String id = (String)jTable.getValueAt(line, 0);
			String cliente = (String)jTable.getValueAt(line, 1);
			this.idCliente.setText(id);
			this.nomeCliente.setText(cliente);
			System.out.println(line);
       }
private JTable loadTable(){
		Vector cabecalho = new Vector();
		cabecalho.add("Id");
		cabecalho.add("Cliente");
		Vector conteudoTabela = new Vector();
		Vector linhaDaTabela = new Vector();
		conteudoTabela.add(linhaDaTabela);
		this.jTable = new JTable(conteudoTabela,cabecalho);
		return jTable;
	}

aki o JTable com o banco

public JTable select() {


        Connection con;
        Statement st = null;
        ResultSet rS = null;
        try {
            con = ConnectionDB.getConnection();
            String sql = "SELECT * FROM cliente";
            st = (Statement) con.createStatement();
            rS = st.executeQuery(sql);
            
            JTable jTable;
            Vector conteudoTabela = new Vector();

            Vector cabecalho = new Vector();
		    cabecalho.add("Id");
		    cabecalho.add("Cliente");

            while (rS.next())
            {
             Vector linhaDaTabela = new Vector();
		     linhaDaTabela.add(rS.getString(1));
		     linhaDaTabela.add(rS.getString(2));
             conteudoTabela.add(linhaDaTabela);
            }

            jTable = new JTable(conteudoTabela,cabecalho);
            
            return jTable;
           
            
        } catch (Exception e) {
            System.out.println("error: " + e.getMessage());
            return null;
        } finally {
            
            
        }

Grata
Debora

7 Respostas

D

mais uma coisa ja li varios topicos mas nenhum resolveu… por isso colequei aki.

inte :smiley:

Mateus_Avelar

nao entendi bem o que voce precisa, seria algo parecido com um botao para atualizar ??

D

Desculpa devo ter me expressado de forma errada…
Acontece o seguinte eu esto criando um programa pra facul, onde tenho que criar uma tela, nesta tela tenho os botaoes incluir, excluir, pesquisar. e os campos id e nome do cliente.
Bom o que deveria acontecer era que, quando eu clicar no botaum incluir ele acrescentasse os id e nome do cliente em uma JTable, mas isso naum ocorre, o id e nome do cliente naum aparece na JTable., no entanto ele é atualizado no Banco de dados.

eu queria que o programa atualizasse em tempo de execuçao … me mostrando na JTable os item add e nome do cliente.

aff sou pessima pra explicar… desculpa… se naum entenderem eu tento melhor na expplicaçao

Obrigada
Debora

Mateus_Avelar

voce já tentou passtar algum metodo parecido com o do jtable, apos a adiçao??

o metodo que falo é este, mas o mesmo nao deve ser usado, mas pode ser alterado.
public JTable select() {


        Connection con;
        Statement st = null;
        ResultSet rS = null;
        try {
            con = ConnectionDB.getConnection();
            String sql = "SELECT * FROM cliente";
            st = (Statement) con.createStatement();
            rS = st.executeQuery(sql);
            
            JTable jTable;
            Vector conteudoTabela = new Vector();

            Vector cabecalho = new Vector();
		    cabecalho.add("Id");
		    cabecalho.add("Cliente");

            while (rS.next())
            {
             Vector linhaDaTabela = new Vector();
		     linhaDaTabela.add(rS.getString(1));
		     linhaDaTabela.add(rS.getString(2));
             conteudoTabela.add(linhaDaTabela);
            }

            jTable = new JTable(conteudoTabela,cabecalho);
            
            return jTable;
           
            
        } catch (Exception e) {
            System.out.println("error: " + e.getMessage());
            return null;
        } finally {
            
            
        }
D

Desculpe a demora, to em epoca de prova na facul… e ainda trabalho… to sem muito tempo.

Bom ainda naum tentei, assim que eu chegar em casa depois meu serviço eu vou tentar dai eu posto aki.

muito obrigada pela ateçao Mateus.

D

Bom naum consegui =/

li em alguns foruns que e possivel usar o validate(); repaint() e update()
mas nenhum destes funcionou… naum sei se eu estou colocando no local certo…

Eldius

Já tentou modificar/manipular o TableModel da JTable? Se não, dê uma olhada neste link aqui do forum que pode ser interessante
http://www.guj.com.br/article.show.logic?id=140
Espero que ainda dê tempo de ajudar.

Criado 12 de abril de 2009
Ultima resposta 2 de mai. de 2009
Respostas 7
Participantes 3