Olá amigos
lá vai o código completo:
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.sql.ResultSet;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
/**
*
* @author silvio
*/
public class ClassInicializaTable {
static java.sql.Statement stmt;
static String mnome, macao;
static Object id;
public int linhatabela;
static ResultSet rs;
public String [] Colunas;
public int [] TamanhoCol;
public JTable jTable1 = new JTable();
public JScrollPane scroller = new JScrollPane(jTable1);
public DefaultTableModel aModel = new DefaultTableModel();;
public void ClassInicializaTable () {
}
public void montaTabela(String[] nomeColunas, int [] tamanhoColunas,int [] posicaoTabela) throws Exception {
String[] tableColumnsName = nomeColunas;
DefaultTableModel aModel = new DefaultTableModel(nomeColunas, 0) {
@Override
public Class getColumnClass(int column) {
Class returnValue;
if ((column >= 0) && (column < getColumnCount())) {
if (getValueAt(0, column) != null) {
returnValue = getValueAt(0, column).getClass();
} else {
returnValue = Object.class;
}
} else {
returnValue = Object.class;
}
return returnValue;
}
@Override
public boolean isCellEditable(int row, int col) {
return false;
}
};
aModel.setColumnIdentifiers(nomeColunas);
Colunas = nomeColunas;
TamanhoCol = tamanhoColunas;
jTable1.setModel(aModel);
scroller.setBounds(posicaoTabela[0], posicaoTabela[1], posicaoTabela[2], posicaoTabela[3]);
}
public void preencheTabela( boolean pesquisa, ResultSet rs,String[] nomeColunas, int [] tamanhoColunas,int [] posicaoTabela, String [] nomeCampos) throws Exception {
String[] tableColumnsName = nomeColunas;
DefaultTableModel aModel = new DefaultTableModel(nomeColunas, 0) {
@Override
public Class getColumnClass(int column) {
Class returnValue;
if ((column >= 0) && (column < getColumnCount())) {
if (getValueAt(0, column) != null) {
returnValue = getValueAt(0, column).getClass();
} else {
returnValue = Object.class;
}
} else {
returnValue = Object.class;
}
return returnValue;
}
@Override
public boolean isCellEditable(int row, int col) {
return false;
}
};
aModel.setColumnIdentifiers(nomeColunas);
Colunas = nomeColunas;
TamanhoCol = tamanhoColunas;
jTable1.setModel(aModel);
scroller.setBounds(posicaoTabela[0], posicaoTabela[1], posicaoTabela[2], posicaoTabela[3]);
jTable1.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
}
});
if (pesquisa) {
int colNo = Colunas.length;
while(rs.next()){
Object[] objects = new Object[colNo];
for(int i = 0; i < colNo; i++) {
objects[i] = rs.getObject(nomeCampos[i]);
}
aModel.addRow(objects);
}
for (int i = 0 ; i < Colunas.length; i ++){
jTable1.getColumnModel().getColumn(i).setPreferredWidth(tamanhoColunas[i]);
}
jTable1.setModel(aModel);
jTable1.setFillsViewportHeight(true);
jTable1.getTableHeader().setReorderingAllowed(false);
}
}
void addMouseListener(MouseAdapter mouseAdapter) {
;
}
void addMouseListener(MouseListener mouseListener) {
;
}
}
código no frame:
String [] colunasTab = {"Nº Item","Tombamento","Descrição","Data","Setor"};
int [] tamanhoCol = {5,30,300,10,100,100};
//int [] posicaoTab = {50,450,600,150};
int [] posicaoTab = {50,(int) (getHeight - (getHeight * pos+.04 )), poslargura, posaltura};
String [] nomeCampos = { "item","tombamento","descricao","data","setor"};
colunasTabela = colunasTab;
tamanhoColunas = tamanhoCol;
posicaoTabela = posicaoTab;
nomeDosCampos = nomeCampos;
stmt = bd.ConexaoBancoDados.conexao().createStatement();
String query = "select item, tombamento, descricao, data, setor from patrimonio order by 1";
ResultSet rs = stmt.executeQuery(query);
try {
tabela.preencheTabela(true,rs,colunasTabela, tamanhoColunas, posicaoTabela,nomeDosCampos);
jPanel2.add(tabela.scroller);
jPanel2.add(tabela.scroller).setVisible(true);
} catch (Exception ex) {
Logger.getLogger(FramePatrimonio.class.getName()).log(Level.SEVERE, null, ex);
}
pos1=pos+.04;
int [] posicao = {30,(int) (getHeight - (getHeight * pos1)),poslargura+40, posaltura+70};
posicaoPanel = posicao;
tituloPanel.ClassPanelTitulo("Tabela", posicaoPanel,"1");
jPanel2.add(tituloPanel.titledBorders);
stmt.close();
macao = "A";
//-->> estou tentando aqui adicionar um evento da jtable no meu frame e não na classe que cria a jtable
tabela.addMouseListener(new MouseListener() {
public void mouseClicked(MouseEvent e) {
System.out.println("opa");
}
public void mousePressed(MouseEvent e) {
}
public void mouseReleased(MouseEvent e) {
}
public void mouseEntered(MouseEvent e) {
}
public void mouseExited(MouseEvent e) {
}
});
muito obrigado
Silvio Guedes