JTable , ArrayList

1 resposta
B

Preciso de algo que mostro os registro buscados de um tabela
fiz um JTable, pois ele é meio complicado pra fazer
não tem algo melhor ou menos complicado
eu fiz isso e deu mais de 37 err0rs na hora de compilar esse codigo
pegue de um livro da versao 1.3, e estou utilizando a versao 1.5.0 beta2;

<blockquote>import java.awt.event.<em>;

import java.util.</em>;

import java.awt.<em>;

import java.sql.</em>;

import java.swing.*;

public class TabelaCombo extends JFrame

{

private Connection connection, conexao;

private JTable tab;

public TabelaCombo()

{

setTitle(Tabela);

setSize(500,300);

String url = jdbc:odbc:MeuBanco;

try

{

Class.forName(sun.jdbc.odbc.JdbcOdbcDriver);

Connection MinhaConexao = DriverManager.getConnection(url);

MeuState = MinhaConexao.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,

ResultSet.CONCUR_READ_ONLY);

}

catch(ClassNotFoundException ex)

{

JOptionPane.showMessageDialog(null,Driver JDBC_ODBC não encontrado!);

}

catch(SQLException ex)

{

JOptionPane.showMessageDialog(null,Problemas na conexão com a fonte de dados);

}

buscaTabela();

setSize(800,600);

show();

}

private void buscaTabela()

{

Statement st;

ResultSet res;

try

{

String query =SELECT * FROM tbveiculo Where bdveiculo;

st = connection.createStatement();

res = st.executeQuery(query);

displayresultset( res );

st.close();

}

catch (SQLException ex)

{

ex.printStackTrace();

}

}

private void displayresultset( ResultSet rs )

throws SQLException

{

//posiciona para o primeiro registro

boolean moreRecords = rs.next();

// se não houver registro manda menssagem

if (!moreRecords)

{

JOptionPane.showMessageDialog(null,Nao existe registro!);

setTitle(Filtro sem registro);

return;

}

setTile(Filtro);

Vector coluna = new Vector();

Vector linhas = new Vector();

try

{

//obtem titulos de coluna

ResultSetMetaData rsmd = rs.getMetaData();

for (int i=1; i <=rsmd.getColumnCount(); ++i)

coluna.addElement( rsmd.getColumnName(i));

// obtem dados das linhas

do

{

linhas.addElement( getNextRow (rs, rsmd));

}

while(rs.next());

//exibe a tabela com os registro se houver

tab = new JTable(linhas, coluna);

JScrollPane scroller = new JScrollPane(tab);

getContentPane().add(scroller, BorderLayout.CENTER);

validate();

}

catch (SQLException ex)

{

ex.printStackTrace();

}

}

private Vector getNextRow( ResultSet rs, ResultSetMetaData rsmd)

throws SQLException

{

Vector currentRow = new Vector();

for( int i =1; i<= rsmd.getColumnCount(); ++i)

switch (rsmd.getColumnType(i))

{

case Types.VARCHAR:

currentRow.addElement( rs.getString(i));

break;

case Types.INTEGER:

currentRow.addElement(

new Long( rs.getLong(i)));

break;

default:

System.out.println ("");

}

return currentRow;

}

public void shutDown()

{

try

{

connection.close();

}

catch(SQException ex)

{

ex.printStackTrace();

}

}
public static void main(String args[])
  {
      final TabelaCombo app = new TabelaCombo();
      app.addWindowListener(
      new WindowAdapter() {
	      public void windowClosing(WindowEvent e)
	       {
		       app.shutDown();
		       System.exit(0);
	       }
       }
       );
   }

}

1 Resposta

brlima

Meu, teu assunto ta meio fora do foco da tua pergunta… E acho que deveria postar na thread de Swing…

Cara, pera! Vc tem que entender as duas coisas separadamente. Primeiro pegue uns exemplos de JTable, estuda ela, ve como ela se comporta carregando na mao seus dados. Depois vá e faça testes para ler os dados da tabela, usando o system.out.println. Vá entendendo como funciona as coisas. Depois sim, use o resultado pra carregar a JTable.

Existem usn tutoriais bacanas ai pra vc tentar entender o funcionamento. QUem sai ganhando com isso é vc. Faça uma coisa de cada vez.

:arrow: Criando JTable e alimentado ela.
:arrow: Fazendo um select e lendo o resultado

Com esses dois tutoriais dá pra vc ter uma otima ideia de como fazer bem feito uma JTable carregada a partir de uma consulta no banco. :smiley:

No mais, procura no forum que existem vaaaaaaaaaaaaaarios exemplos e topicos sobre esse assunto.

Criado 13 de julho de 2004
Ultima resposta 13 de jul. de 2004
Respostas 1
Participantes 2