Olá Pessoal…ainda sou meio novato no swing e já estou a algum tempo tentando encontrar uma solução para o meu TableModel, ja vi varios exemplos aqui no forum mas nenhum onde o TableModel nao utiliza array list para instanciar a tabela como no meu caso, e assim nao consigo fazer o metodo addrow rodar…se alguem tiver alguma ideia do que possa ser mande ai
ta aqui a minha classe JTableModel:
[code]import javax.swing.table.;
import java.sql.;
public class Tabela extends AbstractTableModel {
private Connection conexao;
private Statement statement;
private ResultSet resultSet;
private ResultSetMetaData metaData;
private int linhas;
private String query;
public Tabela(String driver, String url, String user,
String password, String query)
throws SQLException, ClassNotFoundException {
Class.forName(driver);
conexao = DriverManager.getConnection(url, user, password);
statement = conexao.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
setQuery(query);
}
// Retorna a classe que representa o tipo da coluna
public Class getColumnClass(int column) {
try {
String className = metaData.getColumnClassName(column + 1);
return Class.forName(className);
}
catch (Exception exception) {
exception.printStackTrace();
}
// Se ocorrer algum problema, assume o tipo Object
return Object.class;
}
public int getColumnCount() {
try {
return metaData.getColumnCount();
}
catch (SQLException sqlException) {
sqlException.printStackTrace();
}
// Se ocorrer algum problema, retorna 0 como número de colunas
return 0;
}
public String getColumnName(int column) {
try {
return metaData.getColumnLabel(column + 1);
}
catch (SQLException sqlException) {
sqlException.printStackTrace();
}
// Se ocorrer algum problema, retorna uma string vazia
return "";
}
protected void finalize() {
try {
statement.close();
conexao.close();
}
catch (SQLException sqlException) {
sqlException.printStackTrace();
}
}
public int getRowCount() {
return linhas;
}
public Object getValueAt(int row, int column) {
try {
resultSet.absolute(row + 1);
return resultSet.getObject(column + 1);
}
catch (SQLException sqlException) {
sqlException.printStackTrace();
}
return "";
}
public void refresh() throws SQLException {
setQuery(query);
}
public void setQuery(String qry) throws SQLException {
query = qry;
resultSet = statement.executeQuery(qry);
metaData = resultSet.getMetaData();
// determina o número de linhas em um resultSet
resultSet.last();
linhas = resultSet.getRow();
//notifica JTable das alterações
fireTableStructureChanged();
}
public void addRow(){
System.out.println(linhas);
fireTableRowsInserted(linhas-1, linhas-1);
}
}[/code]
Desde já agradeço pela força galera.