eu tenho uma JTable, eu usei um CellRenderer pra poder fazer com que uma das colunas dessa tabela seja uma Jlabel com um ícone
public class TableCellRendererPersonalizado extends DefaultTableCellRenderer {
ImageIcon icon = new ImageIcon(getClass().getResource("/imagens/nvl0.png"));
public TableCellRendererPersonalizado (ImageIcon icon) {
this.icon=icon;
}
JLabel lbl = new JLabel();
public Component getTableCellRendererComponent (JTable table, Object value, boolean isSelected,
boolean hasFocus, int row, int col) {
lbl.setIcon(icon);
return lbl;
}
}
(o código do CellRenderer)
no meu codigo, tem um metodo chamado getNivel, que pede como parametro uma JLabel, e a partir do icone que esta sendo usado pra essa label ele me retorna uma informação, eu preciso enviar a label que está nessa celula como parametro desse metodo, alguem sabe como?
o código do meu evento:
private void tableAntecedentesMouseClicked(java.awt.event.MouseEvent evt) {
int row = tableAntecedentes.rowAtPoint(evt.getPoint());
int col = tableAntecedentes.columnAtPoint(evt.getPoint());
JOptionPane.showMessageDialog(null, "disparou o evento na celula: "+row+","+col);
JLabel label=(JLabel)antecedentes.getValueAt(row, col);
int nivel=getNivel(label);
JOptionPane.showMessageDialog(null, nivel);
}
obs.: antecedentes é uma instancia do meu TableModel
o código do metodo getNivel:
public int getNivel(JLabel label) {
int nivel = 0;
for (int i = 0; i < label.getIcon().toString().length(); i++) {
try {
nivel = Integer.parseInt(label.getIcon().toString().substring(i, i + 1));
} catch (NumberFormatException e) {
}
}
return nivel;
}
muito obrigado desde ja xD