BD no JTABLE![RESOLVIDO]

8 respostas
banger

buennas,

mew to construindo um codigo que pega info de um banco de dados e joga em um
JTable, mas tah dando uns erros aqui que eu naum consigo descubrir o que é, vocês poderiam me ajudar no erro!!

ai vai o codigo:

barra1.setVisible(true);
 barra1.setSize(700,500);
 controleEntrada.setVisible(true);
 controleEntrada.setSize(708, 532);



String url;
String driver;
Connection con = null;
ResultSet rs = null;

Statement stmt;
url = "jdbc:odbc:controlePortas";
driver = "sun.jdbc.odbc.JdbcOdbcDriver";

try {
Class.forName(driver);
con = DriverManager.getConnection(url);
JOptionPane.showMessageDialog(null, "Conectado ao banco");
}
catch (ClassNotFoundException e) {
System.err.println(
"");
cnfex.printStackTrace();
System.exit(1);
}
catch (SQLException sqlex) {
System.err.println("");
sqlex.printStackTrace();
}




getTable();
this.setSize(450, 370);
setLocation(5,20);

}

private void getTable()
{
Statement statement;
ResultSet resultset;

try {
statement = connection.createStatement();
resultset = statement.executeQuery("Select * from controleEntrada");
displayResultSet(resultset);
statement.close();
}
catch ( SQLException sqlex ) {
sqlex.printStackTrace();
}
}

private void displayResultSet(ResultSet rs )
throws SQLException
{
boolean moreRecords = rs.next();

if (! moreRecords) {
JOptionPane.showMessageDialog(this, "Nao existem registros na tabela!!");
//setTitle();
return;
}



Vector columnHeads = new Vector();
Vector rows = new Vector();

try {
ResultSetMetaData rsmd = rs.getMetaData();
for (int i = 1; i <= rsmd.getColumnCount(); ++i)
columnHeads.addElement(rsmd.getColumnName(i));

do {
rows.addElement(getNextRow(rs, rsmd));
} while (rs.next());

table = new JTable(rows, columnHeads);
barra1 = new JScrollPane(table);
barra1.setPreferredSize(new java.awt.Dimension(447, 353));
controleEntrada.add(barra1);
validate();
}
catch (SQLException sqlex) {
sqlex.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;
/*case Types.LONGCHAR:currentRow.addElement(rs.getString(i));
break;*/
default: System.out.println("Tipo dos Dados: " + rsmd.getColumnTypeName(i));
}
return currentRow;
}

public void shutDown()
{
try {
connection.close();
}
catch (SQLException sqlex) {
System.err.println("Não foi possiel desconectar.");
sqlex.printStackTrace();
}

ai vai o erro:

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
        at SrCom.AeSTeste.getTable(AeSTeste.java:1456)
        at SrCom.AeSTeste.statusEntradaActionPerformed(AeSTeste.java:1444)
        at SrCom.AeSTeste.access$4100(AeSTeste.java:31)
        at SrCom.AeSTeste$42.actionPerformed(AeSTeste.java:1267)
        at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
        at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
        at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
        at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
        at javax.swing.AbstractButton.doClick(AbstractButton.java:357)
        at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:1223)
        at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:1264)
        at java.awt.Component.processMouseEvent(Component.java:6263)
        at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
        at java.awt.Component.processEvent(Component.java:6028)
        at java.awt.Container.processEvent(Container.java:2041)
        at java.awt.Component.dispatchEventImpl(Component.java:4630)
        at java.awt.Container.dispatchEventImpl(Container.java:2099)
        at java.awt.Component.dispatchEvent(Component.java:4460)
        at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4574)
        at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
        at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
        at java.awt.Container.dispatchEventImpl(Container.java:2085)
        at java.awt.Window.dispatchEventImpl(Window.java:2478)
        at java.awt.Component.dispatchEvent(Component.java:4460)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

8 Respostas

TheKill

o erro é que está vindo Null do banco :wink:

verifique se não existe Null em algum campo e trate esse erro de alguma forma ^^

banger

olhei,pior que naum tem campo nulo nao :(.

zoren

Seu problema é que vc cria uma conexão chamada con e usa uma chamada connection, que por sua vez está nula

no método getTable

T

faz um teste:

JOptionPane.showMessageDialog(this, “Nao existem registros na tabela!!”);

ao invés de “this” troca por null e vê se funciona…

abs…

zoren

tmf:
faz um teste:

JOptionPane.showMessageDialog(this, “Nao existem registros na tabela!!”);

ao invés de “this” troca por null e vê se funciona…

abs…

Esse this não quer dizer nada, é só o alinhamento do JOptionPane, no caso de null ele se alinha no centro da tela, o this faz com que ele se alinhe com o componente que o chamou

banger

opah funfo!! troquei o connection por con e rodo,

soh falta aparecer no scrollPane auhahuuauahuhauhuahuhauhuahuahuhauhuahuhauhuahuauhau"!!!

mas o verdadeiro prob jah tah resolvido gente vlw!!!

zoren

banger:
opah funfo!! troquei o connection por con e rodo,

soh falta aparecer no scrollPane auhahuuauahuhauhuahuhauhuahuahuhauhuahuhauhuahuauhau"!!!

mas o verdadeiro prob jah tah resolvido gente vlw!!!

Edita o seu primeiro Post e coloca no titulo resolvido, no último acho q não aparece pra quem vem de fora

Marky.Vasconcelos

Só uma coisa, NÃO use DefaultTableModel.

Implemente seu proprio.

Criado 26 de abril de 2010
Ultima resposta 26 de abr. de 2010
Respostas 8
Participantes 5