Problema com JTable

9 respostas
W

pessoal sei que esse eh um assunto muito batido mas nao
achei solução ainda nem referencia a problemas parecidos

estou montando uma JTable pra exibir resultados de uma consulta ao banco de dados pgSQL abaixo esta o fonte e mais abaixo ainda uma screenshot do problema.

import java.sql.*;
import javax.swing.*;
import java.awt.*;
import java.util.*;

class BuscaFornecedores extends JFrame{
	public static void main(String args[]){
		JFrame frame = new JFrame("Busca Fornecedores");
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.getContentPane().setLayout(new java.awt.FlowLayout());
		String[] colunas = {"Fornecedor", "CPF/CNPJ", "Endereço", "Telefone", "E-Mail", "Contato", "Observações"};
		Object[][] dados=null;
		javax.swing.table.DefaultTableModel modelo = new javax.swing.table.DefaultTableModel(dados, colunas);
		
		try {  
			Class.forName("org.postgresql.Driver");
			Connection con = DriverManager.getConnection("jdbc:postgresql://localhost:5432/antares", "postgres", "postgres");
			String busca = "SELECT * FROM fornecedores";
			Statement stmt = con.createStatement();
			ResultSet rs = stmt.executeQuery(busca);
			Vector vt = new Vector();
			while (rs.next()) {
				Object[][] dados_model = {{rs.getObject("nome"), rs.getObject("cnpj"), rs.getObject("end"), rs.getObject("tel"), rs.getObject("mail"), rs.getObject("contato"), rs.getObject("obs") }};
				vt.add(dados_model);
				modelo.addRow(vt);
			}
		}
		catch (ClassNotFoundException e) {   
			System.out.println("System error");      
		}
		catch (SQLException e) {
			e.printStackTrace();
			System.out.println(e.getMessage());
			System.out.println("It can't connect to the database");
		}
		
		JTable tabela = new JTable(modelo);
		JScrollPane scroll = new JScrollPane(tabela);
		frame.add(scroll);
		frame.setSize(500, 300);
		frame.setVisible(true);

	}
}

9 Respostas

bruxel

ou vc implemente um objeto do tipo de retorno que vc quer ou

tente retornar com getString o campo do banco

rs.getString(“nome”)

colored

Dando uma Bica…

Axo q ele ta jogando a referencia… na Jtable

bruxel

outra possivel causa é vc tirar esse vetor do meio do while, isso não é necessário

W

O vetor foi na tentativa de resolver eu jah tentei com rs.getString e tbm jah tentei com rs.getObject e tbm nao funcionou. gostaria de agradecer a prestatividade de vcs em tentar ajudar. Obrigado!

colored

Achei um Eskeminha aki tenta aproveita… pq seu codigo ta foda de achar alguma coisa mo bagunça =D;;;
Tipo Ao inves de Uma array que nem ta aki Uma ArrayList axo q era melhor =D

ResultSet rs = ps.executeQuery();
	         while(rs.next()){
	    	   String[] dados = new String[8];
	    	   dados[0] = rs.getString("cd_Func");
	    	   dados[1] = rs.getString("Nm_Func");
	    	   dados[2] = rs.getString("End_Func");
	    	   dados[3] = rs.getString("Tel_Func");
	    	   dados[4] = rs.getString("Cargo_Func");
	    	   dados[5] = rs.getString("Salario_Func");
	    	   dados[6] = rs.getString("Cpf_Func");
	    	   dados[7] = rs.getString("Dt_Nasc_Func");
	   
	    	   
	        model.addRow(dados);
colored

Ja sei… Nao adiciona no Vector Add Direto no Model q da Certo =]

W

funciona nao, eu jah tentei, mas esse esquema aew da string numerada que vc mandou antes funcionou blza aki…
mas e se eu nao souber o numero???
achei que qdo fizesse String[] dados = new String; e fosse adicionando dados ele fosse indexando automaticamente sem eu precisar ir setando um por um. mas resolveu o problema muito obrigado pela ajuda!

colored

Saber que numero???

Ali vc tem q especificar neh em q parte da array vc ker jogar o dado…

| 1 | 2 | 3 | 4 | 5 |

Se vc n ker fazer isso usa ArrayList entao ai vc soh add nela…

W

Eu vou dar uma lida sobre ArrayList sou iniciante ainda em java, vou dar uma lida e qualquer sufoco volto a importunar vcs rsrsrs
qto a desorganização do codigo foi devido às inumeras tentativas de fazer funcionar, eu jah reorganizei tudo.
obrigado todos mundo pela ajuda

Criado 24 de abril de 2008
Ultima resposta 24 de abr. de 2008
Respostas 9
Participantes 3