Re:Dúvida com JTable

8 respostas
klarq

Faz o seguinte,

da uma olhada se o ResultSet está trazendo as informações :wink:

8 Respostas

klarq

Ja tentou usar o DefaultTableModel no lugar do seu model ai...

pq se as linhas
head.add(rsmd.getColumnName(a));
body.add(bv);
funcionam... Ate onde eu sei deveria aparecer os dados, tenta o DetaultTableModel:
DefaultTableModel model = (DefaultTableModel) titulosEAutoresJTable.getModel();
		
		int cont = model.getRowCount();
		
		for (int i=0; i<cont; i++)
		{
		model.addRow(new Object[]{"seuDadoDaColuna0","seuDadoDaColuna1"});
		}
klarq

Não sei... :|

O text está funcionando certinho...

search.addActionListener(this);    // JTextField que faz o filtro.
 
 else if(ke.getSource() == search) {
 	 String text = search.getText();
                 //tenta isso pra ver se o text funciona
                 System.out.println(text);
 	 sorter.setRowFilter(RowFilter.regexFilter(text));
 }
klarq

Coloca o código inteiro ai pra gente ver se acha o problema, pq estou dando uns chutes aqui e não estou acertando… :wink:

D
Pesoal, Tenho um JTable que faz uma consulta no banco e retorna o resultado, tenho tbm um JTextField que faz um filtro na JTable. Quando eu abro a tela JInternaFrame onde tem a JTable, o filtro do jtextfield funciona perfeitamente, mas se eu fechar a jenela e abrir novamente o filtro não funciona mais... não sei onde ta o erro nisso. Abaixo segue o cod da JTable e do JTF
TableModel model = new DefaultTableModel(body, head) {
		public boolean isCellEditable(int body, int head) {
			return false;
			}
		};
		
	public TableRowSorter&lt;TableModel&gt; sorter = new TableRowSorter&lt;TableModel&gt;(model);

	private void Table()throws Exception {
		try {
			rs = stmt.executeQuery("select cad_nr, cad_nome,
cad_fant, cad_fone, cad_fax, celular, cad_end,
 cad_cpf, cad_rg, cad_cgc, cad_inscr, inscr_prod, 
inscr_min, cid, bai, email from r_cadast");
			rsmd = rs.getMetaData();
			int col  = rsmd.getColumnCount();
			while(rs.next()) {
				bv = new Vector&lt;String&gt;();
				int a;
				for(a=1;a&lt;=col;a++) {
					if(flag) {
						head.add(rsmd.getColumnName(a));
					}
					bv.add(rs.getString(a)==null?&quot;&quot;:(String)rs.getString(a));
				}
				body.add(bv);
				flag=false;
				}
		}
		catch(Exception exec) {
			JOptionPane.showMessageDialog(null,"Problemas na tabela", "Erro", JOptionPane.INFORMATION_MESSAGE);
			exec.printStackTrace();
		}
		jTable = new JTable(body, head);
		jTable.setRowSorter(sorter);
		jTable.setCellEditor(null);
		jTable.setLocation(new Point(15, 118));
		jTable.setBackground(new Color(204, 204, 204));
		jTable.setAutoscrolls(true);
		jTable.setSize(new Dimension(200, 200));
		jTable.addKeyListener(this);
		jTable.addMouseListener(this);
	}
search.addActionListener(this);    // JTextField que faz o filtro.

else if(ke.getSource() == search) {
			 String text = search.getText();
			 sorter.setRowFilter(RowFilter.regexFilter(text));
			 }
Valeu pessoal
D

klarq:
Faz o seguinte,

da uma olhada se o ResultSet está trazendo as informações :wink:


Tá sim, na primeira vez que abre a janela o filtro com o jtext funciona normal, mas se fechar a janela e abrir denovo não funciona mais, daí tem que fechar o programa e abrir de novo. Ele até pega os resultados toda vez que abre a janela, mas o filtro não funciona…
Valeu

D

klarq:
Ja tentou usar o DefaultTableModel no lugar do seu model ai…

Obrigado por responder.
Então, como eu falei, a tabela está mostrando o resultado. Meu problema é com o filtro que só funciona a primeira vez que eu abro a janela (que tem a JTable) e depois se eu fechar a janela e abrir novamente o filtro não funciona, daí tem que fechar o programa e abrir de novo.
Valeu

D

klarq:
Não sei… :expressionless:

O text está funcionando certinho…


Aqui tbm funciona sem problemas, mas quando eu fecho a janela e abro não funciona mais.

D

Agora tá funcionando, só que pior. Quando eu fecho a janela que tem a JTable e abro novamente o jtextfield continua fazendo pesquisa, só que ele duplica os resultados, por exemplo: Se eu faço uma pesquisa pelo João e fecho a janela e abro a janela novamente e faço qualquer outra pesquisa ou até mesmo por João, ele mostra dois resultados. Se eu fecho e abro novamente a janela e faço uma outra pesquisa qualquer ele mostra três resultados e assim sucessivamente.
Se eu fechar o programa e abrir a janela ele faz a pesquisa normal, mas se eu fechar a janela e abrir acontece a mesma coisa, ele vai duplicando os resultados…

Criado 7 de junho de 2006
Ultima resposta 8 de jun. de 2006
Respostas 8
Participantes 2