Ajuda para Gerar Tabela no Banco de Dados

2 respostas
M

Ao gerar a tabela aparece todas as colunas certinhas mas, não aparece o contéudo de uma coluna que contém valores monetários, esta foi sobreescrita por dados de outra coluna deixando a última em branco, tentei alterar o case mas não resoveu, agradeço pelas Dicas pessoal! muito obrigado!!

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

public class Tabela extends JFrame
{
  JTable table;
  public static void main(String args[])
  {
    JFrame janela = new Tabela();
    janela.setUndecorated(true);
    janela.getRootPane().setWindowDecorationStyle(JRootPane.FRAME);
    janela.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    janela.setVisible(true);
  }
  public Tabela() 
  {   
    setTitle( "Tabela de Instrumentos Cadastrados" );
    setBounds(100,100,800,500);
    if (!BD.getConnection())
    {
      JOptionPane.showMessageDialog(null, "Falha na conexão, o sistema será fechado!");
      System.exit(0);
    }
    geraTabela();
  }

  private void geraTabela()
  {
    try 
    {
      Vector<String> cabecalho = new Vector<String>();
      Vector<Vector> linhas = new Vector<Vector>();
      BD.setResultSet("select * from Instrumento");
	  BD.resultSet.next();  
      ResultSetMetaData rsmd = BD.resultSet.getMetaData();
      for ( int i = 1; i <= rsmd.getColumnCount(); ++i ) 
         cabecalho.addElement( rsmd.getColumnName( i ) );
      do 
      {
         Vector<Object> linhaAtual = new Vector<Object>();
         for ( int i = 1; i <= rsmd.getColumnCount(); i++ )
         {
      	       switch( rsmd.getColumnType(i)) 
        	   {
        	      case Types.VARCHAR:
        	         linhaAtual.addElement(BD.resultSet.getString(i));break;
        	      case Types.INTEGER:
         	         linhaAtual.addElement(BD.resultSet.getInt(i));break;
        	   }
         }
         linhas.addElement(linhaAtual);     
      } 
      while ( BD.resultSet.next() );       
      table = new JTable( linhas, cabecalho );
      JScrollPane scroller = new JScrollPane( table );
      getContentPane().add(scroller, BorderLayout.CENTER);
      BD.close();
    }
    catch (SQLException erro) { }
  } 
}

2 Respostas

A

Bem… você mencionou que a coluna contém valores monetários… e no case vocÊ está capturando só dois tipos: INTEGER e VARCHAR. Já tentou procurar por DECIMAL ou DOUBLE ?

M

Sim, quando realizo a mudança ou para DECIMAL OU PARA DOUBLE, continua não aparecendo os valores monetários, também tentei inverter os valores e não funcionou!

Criado 7 de novembro de 2012
Ultima resposta 8 de nov. de 2012
Respostas 2
Participantes 2