Muitas pessoas entraram em contato mais coisas muito complicadas…
Alguem ja deve ter feito isso de forma mais simples…
ja postei varias mensagens… e ndaa
se alguem puder ajudar;; agradeco
Muitas pessoas entraram em contato mais coisas muito complicadas…
Alguem ja deve ter feito isso de forma mais simples…
ja postei varias mensagens… e ndaa
se alguem puder ajudar;; agradeco
Se você já postou várias mensagens do mesmo assunto e ninguem respondeu, não vai ser agora que vão responder… heehhehehehe…
Cara, você sabe buscar dados de um BD (com JDBC) ??? Sabe manipular um JTable ??? Estude essas APIs e quebre um pouco a cabeça em como integrar tudo isso. Aqui no GUJ tem tutorial de JDBC e JTable.
Boa sorte.
Faça uma conexao com o banco de dados para que este te retorne um ResultSet.
Neste esquema:
DriverManager.registerDriver(new OracleDriver());
Connection conec = DriverManager.getConnection("jdbc:oracle:thin:@ipdoBanco:Porta:Servico",USUARIO, SENHA);
Statement stmt = conec.createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY);
rs = stmt.executeQuery(Query);
Este he um esquema de conexao para o Banco ORACLE. Procure ai a conexao pra o banco q vc estiver usando!
Percorra este resultset e monte um TableModel!
Apos isso, incremente esse TableModel em sua Jtable.
[code] /**
int num_col = 0;
int cont = 0;
num_col = rsmd.getColumnCount();
int num_lin;
rs.last();
num_lin = rs.getRow();
rs.beforeFirst();
String dados[][] = new String [num_lin][num_col];
String colunas[] = new String [num_col];
for (int i = 1;i <= num_col; i++)
{
colunas[i - 1] = rsmd.getColumnLabel(i);
}
int a;
while (rs.next())
{
for (int x = 0; x < num_col; x++)
{
a = rsmd.getColumnType(x + 1);
if (a == 2)
{
dados[cont][x] = String.valueOf(rs.getString(x + 1));
}else if (a == 91)
{
dados[cont][x] = String.valueOf(rs.getDate(x + 1));
}else
{
dados[cont][x] = rs.getString(x + 1);
}
}
cont ++;
}
modelo = new DefaultTableModel(dados, colunas);
} catch(Exception e) {
JOptionPane.showMessageDialog( null,"Erro na Função GeraModelo - " + e.getMessage(), “Erro”, JOptionPane.INFORMATION_MESSAGE );
}
return modelo;
} [/code]
Este codigo prontinho te retorno o modelo printinho!
PAsse eu resultset pra ele que ele faze tudo
Ex.
Jtable1.setModel(GeraModelo(MeuResultSET));
Mais que isso he impossivel!
marciofermino, só para te dar mais opcoes no Deitel há abordagem de JDBC, entao é mostrado uma classe q tb retorna um tableModel pra tu setares no JTable. A classe é ResultSetTableModel e tem diversos métodos interessantes.
Falos.
desculpe mis oque é deitel?
import javax.swing.*;
import java.awt.*;
import javax.swing.JPanel;
import javax.swing.border.EtchedBorder;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.JTableHeader;
import sun.security.jca.GetInstance.Instance;
import java.awt.GridBagLayout;
import java.sql.*;
import java.util.Vector;
import javax.swing.JButton;
import java.awt.Rectangle;
import javax.swing.JTextField;
import javax.swing.JTable;
@SuppressWarnings(“serial”)
public class Tela1 extends JFrame{
private JPanel jPanel = null;
private static JTable jTable = null;
public Tela1() {
super ( "Tela " );
initialize();
setVisible ( true );
setLocation(350,200);
}
private void initialize() {
this.setSize(new Dimension(495, 321));
this.setContentPane(getJPanel());
}
private JPanel getJPanel() {
if (jPanel == null) {
jPanel = new JPanel();
jPanel.setLayout(null);
jPanel.add(getJTable(), null);
}
return jPanel;
}
public static void Conexao()
{
String data = "jdbc:odbc:dbdemos";
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection conn = DriverManager.getConnection(
data, "", "");
Statement st = conn.createStatement();
ResultSet rec = st.executeQuery(
"SELECT * FROM Items ");
System.out.println("FIPS\tCOUNTRY\t\tYEAR\t" +
"ANTHRACITE PRODUCTION");
while(rec.next()) {
System.out.println(rec.getString(1) + "\t"
+ rec.getString(2) + "\t\t"
+ rec.getString(3) + "\t"
+ rec.getString(4));
}
st.close();
} catch (SQLException s) {
System.out.println("SQL Error: " + s.toString() + " "
+ s.getErrorCode() + " " + s.getSQLState());
} catch (Exception e) {
System.out.println("Error: " + e.toString()
+ e.getMessage());
}
}
/**
* This method initializes jTable
*
* @return javax.swing.JTable
*/
private JTable getJTable() {
if (jTable == null) {
jTable = new JTable();
jTable.setBounds(new Rectangle(85, 55, 375, 80));
}
return jTable;
}
public static void main(String[] args) {
Tela1 tela1 = new Tela1();
tela1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Conexao();
// ???
jTable.setModel(GeraModelo(rec));
// ???
}
/**
* Gera um modelo a partir de um ResultSet.
* @param rs
* @return Retorna um modelo de tabela contendo os dados de um ResulSet.
* @throws java.lang.Exception
*@Autor: Vitor Eduardo Patriarcha - Monolito Sistemas
*/
public DefaultTableModel GeraModelo (ResultSet rs) throws Exception
{
DefaultTableModel modelo = null;
try{
ResultSetMetaData rsmd;
rsmd = rs.getMetaData();
int num_col = 0;
int cont = 0;
num_col = rsmd.getColumnCount();
int num_lin;
rs.last();
num_lin = rs.getRow();
rs.beforeFirst();
String dados[][] = new String [num_lin][num_col];
String colunas[] = new String [num_col];
for (int i = 1;i <= num_col; i++)
{
colunas[i - 1] = rsmd.getColumnLabel(i);
}
int a;
while (rs.next())
{
for (int x = 0; x < num_col; x++)
{
a = rsmd.getColumnType(x + 1);
if (a == 2)
{
dados[cont][x] = String.valueOf(rs.getString(x + 1));
}else if (a == 91)
{
dados[cont][x] = String.valueOf(rs.getDate(x + 1));
}else
{
dados[cont][x] = rs.getString(x + 1);
}
}
cont ++;
}
modelo = new DefaultTableModel(dados, colunas);
} catch(Exception e) {
JOptionPane.showMessageDialog( null,"Erro na Função GeraModelo - " + e.getMessage(), "Erro", JOptionPane.INFORMATION_MESSAGE );
}
return modelo;
}
}