Tudo bem pessoal?
Estou com um problema com JTable, na verdade eu não consigo visualizar oque eu estou fazendo =/
Simplesmente nao sei oque aconteceu, até agora estava tudo funcionando, quando terminei o codigo sumiu.
Segue o código:
obs: Eu comentei oque achei desnecessário.
package projeto_final;
import java.awt.*;
import java.awt.event.*;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.border.EmptyBorder;
import javax.swing.table.DefaultTableModel;
import java.sql.ResultSet;
//import java.sql.ResultSetMetaData;
//import java.sql.Statement;
import java.sql.*;
import javax.swing.*;
public class Filmes_Alterar_Cadastro extends JFrame {
/**
*
*/
private static final long serialVersionUID = 1L;
private JPanel contentPane;
private JTextField tfSql;
Connection con; //Necessario para conexao com o banco de dados
PreparedStatement sql; //Necessario para conexao com sql
private PreparedStatement statment;
private ResultSet resultSet;
private JScrollPane scrollPane;
private JTable table;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
copy frame = new copy();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public Filmes_Alterar_Cadastro() {
JFrame frame = new Filmes_Alterar_Cadastro();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
/*------------------------------Conexão Banco de Dados-----------------------------------------*/
try { // Necessita da criação do "Try Catch" para funcionar a conexão
// Registra o Driver JDBC
Class.forName("com.mysql.jdbc.Driver");
// Estabelece a conexão ao Banco de Dados
con = DriverManager.getConnection(
"jdbc:mysql://localhost/locadora_piratas",
"root", "chari123");
// sql = con.prepareStatement(
// "insert into filmes (nome, genero, ator, diretor, duracao, descricao) values (?, ?, ?, ?, ?, ?)"); // (Campos do banco de dados) e (? para codificar)
} catch (Exception e) { // "Senão do "Try Catch"
e.printStackTrace();
JOptionPane.showMessageDialog(null,"Erro na conexao! (Conexao Banco)"); // Exibir Erro de Conexao
}
/*----------------------------------------------------------------------------------------------------*/
setTitle("Alterar Filme");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 420);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
JLabel lblConsultaSql = new JLabel("Consulta SQL:");
lblConsultaSql.setBounds(22, 22, 83, 14);
contentPane.add(lblConsultaSql);
tfSql = new JTextField();
tfSql.setBounds(22, 47, 160, 20);
contentPane.add(tfSql);
tfSql.setColumns(10);
scrollPane = new JScrollPane();
scrollPane.setBounds(22, 163, 396, 199);
contentPane.add(scrollPane);
table = new JTable();
scrollPane.setViewportView(table);
JButton btnExecutar = new JButton("Executar");
btnExecutar.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try {
if(tfSql.getText().equals("")){
return;
}
resultSet = statment.executeQuery();
DefaultTableModel tableModel = new DefaultTableModel(
new String[]{},0){
/**
*
*/
private static final long serialVersionUID = 1L;
};
int qtdeColunas = resultSet.getMetaData().getColumnCount();
for (int indice =1; indice<=qtdeColunas; indice++)
tableModel.addColumn(resultSet.getMetaData().getColumnName(indice));
table = new JTable(tableModel);
DefaultTableModel dtm = (DefaultTableModel) table.getModel();
while (resultSet.next()){
try{
String[] dados = new String[qtdeColunas];
for (int i = 1; i<=qtdeColunas; i++){
dados[i-1] = resultSet.getString(i);
}
dtm.addRow(dados);
System.out.println();
}
catch (SQLException erro){
}
scrollPane.setViewportView(table);
}
resultSet.close();
// con.close(); // No livro que peguei como base esta dizendo statment.close(); só que nao funciona
}
catch (Exception erro){
JOptionPane.showMessageDialog(null, "Comando SQL invalido!" + erro.toString());
}
}
});
btnExecutar.setBounds(22, 85, 89, 23);
contentPane.add(btnExecutar);
}
}
Eu sou iniciante em Java, estou terminando meu primeiro curso agora (este trabalho que estou fazendo é meu trabalho final)
Já consegui fazer cadastro tudo bonitao, so nao consigo listar em uma JTable.
Estou procurando como eu faço para fazer.
Se alguem puder me dar um help agradeço muito.