Bom Dia Pessoal,
Estou começando com o java mas estou me batendo muito, através de inumeros tutoriais e dicas na internet montei a conexão com o banco de dados que esta ok, testado com Sysmtem.out.printl aparece os dados, após isso estou tentando jogar isso em uma JTable que deveria aparecer em um JFrame, teoricamente a parte que jogo no JTable estaria ok, mas como fazer isso aparecer em uma JFrame ?
Sei que JTable é um assunto bastante discutido mas peço a paciência pois realmente não faço idéia de como associar isso a uma JFrame com base nisso poderia pegar o fio da linha.
Seu me Código para dar uma olhada de como esta estruturado.
package consulaut;
import java.sql.*;
import java.awt.*;
import javax.swing.*;
import java.util.*;
public class ConsulAut extends JPanel {
private Connection con;
private JTable table;
public ConsulAut() {
super();
String login = "sysprogress"; //Seu login de acesso
String senha = "adm"; //Sua senha de acesso
String urlDB = new String("jdbc:datadirect:openedge://192.168.0.201:18030;databaseName=mov2mult");
try {
/* Registrando a classe do driver JDBC */
Class.forName ("com.ddtek.jdbc.openedge.OpenEdgeDriver");
con = DriverManager.getConnection(urlDB,login,senha);
}
catch (ClassNotFoundException cnfex) {
System.err.println("Erro conexao");
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 stmt;
ResultSet rs;
try {
//String query = "Select autor,nome,localdearmazenamento from obra order by autor";
String qryCnstaSaldo = "select * from pub.\"saldo-estoq\" ";
stmt = con.createStatement();
rs = stmt.executeQuery(qryCnstaSaldo);
displayResultSet(rs);
stmt.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);
JScrollPane scroller = new JScrollPane(table);
add(scroller,BorderLayout.CENTER);
scroller.setPreferredSize(new java.awt.Dimension(447, 353));
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 {
con.close();
}
catch (SQLException sqlex) {
System.err.println("N? foi poss?el desconectar.");
sqlex.printStackTrace();
}
}
}