buennas,
bom fiz a conecção com meu banco, mas a construção da tabela tah saindo errada, tpw ao inves de aparecer no Jframe denominado de controleEntrada, ele está montando(ou pelo menos é o que parece) no frame principal, jah verifiquei se o rows e o columnHeads tem informação, e tah ok, jah mechi em varias coisas, jah peksquisei mas naum achei nada que possa me ajudar,
tah ai o codigo:
public void TableDisplay()
{
// O URL que especifica o banco de dados Books ao qual
// esse programa se conecta, utilizando JDBC para conectar a um
// banco de dados Microsoft ODBC.
String url;
String driver;
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");
stmt = con.createStatement();
}
catch (ClassNotFoundException e) {
System.err.println("");
e.printStackTrace();
}
catch (SQLException sqlex) {
System.err.println("");
sqlex.printStackTrace();
}
getTable();
setSize( 450, 150 );
show();
}
private void getTable()
{
Statement statement;
ResultSet resultSet;
try {
String query = "SELECT * FROM controlePortas";
statement = con.createStatement();
resultSet = statement.executeQuery( query );
displayResultSet( resultSet );
statement.close();
}
catch ( SQLException sqlex ) {
sqlex.printStackTrace();
}
}
private void displayResultSet( ResultSet rs )
throws SQLException
{
// posiciona para o primeiro registro
boolean moreRecords = rs.next();
// Se não houver registros, exibe uma mensagem
if ( ! moreRecords ) {
JOptionPane.showMessageDialog( this, "ResultSet contained no records" );
setTitle( "No records to display" );
return;
}
Vector columnHeads = new Vector();
Vector rows = new Vector();
try {
// obtém títulos de coluna
ResultSetMetaData rsmd = rs.getMetaData();
for ( int i = 1; i <= rsmd.getColumnCount(); ++i )
columnHeads.addElement( rsmd.getColumnName( i ) );
// obtém dados da linha
do {
rows.addElement( getNextRow( rs, rsmd ) );
} while ( rs.next() );
// exibe a tabela com conteúdos de ResultSet
table = new JTable( rows, columnHeads );
barra1 = new JScrollPane( table );
getContentPane().add( barra1, BorderLayout.CENTER );
validate();
for(int i = 0; i < columnHeads.size(); ++i){
System.out.println(columnHeads.get(i));
}
}
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;
default: System.out.println( "Type was: " + rsmd.getColumnTypeName( i ) );
}
return currentRow; }
public void shutDown()
{
try {
con.close();
}
catch ( SQLException sqlex ) {
System.err.println( "Unable to disconnect" );
sqlex.printStackTrace();
}
}
e aqui e onde eu implemento o metodo:
private void statusEntradaActionPerformed(java.awt.event.ActionEvent evt) {
Tabela.setVisible(true);
barra1.setVisible(true);
barra1.setSize(700,500);
controleEntrada.setVisible(true);
controleEntrada.setSize(708, 532);
controleEntrada.add(barra1);
TableDisplay();
}
ele cria o barra1(JScrollPane) mas de tamanho pequenino, naum dah pra ver nada, e ainda por cima ele joga o frame principal novamente para frente.
ajudem me please!!