Opa galera, la vem eu aqui outra vez…
Estou fazendo uma lista com jtable, ate ai tudo bem, porem nao consigo pegar o evento do click da lista…
alguem sabe como?
segue meu codigo:
public class ListarFazendas extends AbstractTableModel{
private final List<FazendaBean> linhas;
private final String[] colunas = new String[] {"ID", "Nome", "Tamanho"};
public ListarFazendas() {
linhas = new ArrayList<FazendaBean>();
}
public ListarFazendas (List<FazendaBean> listaDeFazendas) {
linhas = new ArrayList<FazendaBean>(listaDeFazendas);
}
// Retorna a quantidade de colunas
@Override
public int getColumnCount() {
return colunas.length;
}
// Retorna a quantidade de linhas.
@Override
public int getRowCount() {
return linhas.size();
}
// Retorna o nome da coluna no índice especificado. Este método é usado pela JTable para saber o texto do cabeçalho.
@Override
public String getColumnName(int columnIndex) {
return colunas[columnIndex];
};
// Retorna a classe dos elementos da coluna especificada. Este método é usado pela JTable na hora de definir o editor da célula.
@Override
public Class<?> getColumnClass(int columnIndex) {
switch (columnIndex) {
case 0:
return String.class;
case 1:
return String.class;
case 2:
return String.class;
default:
throw new IndexOutOfBoundsException("columnIndex out of bounds");
}
}
// Retorna o valor da célula especificada pelos índices da linha e da coluna.
@Override
public Object getValueAt(int rowIndex, int columnIndex) {
FazendaBean bean = linhas.get(rowIndex);
switch (columnIndex) {
case 0:
return bean.getId();
case 1:
return bean.getNome();
case 2:
return bean.getTamanho();
default:
throw new IndexOutOfBoundsException("columnIndex out of bounds");
}
}
public void setValueAt(Object aValue, int rowIndex, int columnIndex) {};
// Retorna um valor booleano que define se a célula em questão pode ser editada ou não.
// Este método é utilizado pela JTable na hora de definir o editor da célula.
// Neste caso, estará sempre retornando false, não permitindo que nenhuma célula seja editada.
@Override
public boolean isCellEditable(int rowIndex, int columnIndex) {
return false;
}
// Retorna a fazenda da linha especificada.
public FazendaBean getFazenda(int indiceLinha) {
return linhas.get(indiceLinha);
}
// Adiciona uma lista de sócios ao final dos registros.
public void addListaDeFazendas(List<FazendaBean> bean) {
int tamanhoAntigo = getRowCount();
linhas.addAll(bean);
fireTableRowsInserted(tamanhoAntigo, getRowCount() -2);
}
// Verifica se este table model está vazio.
public boolean isEmpty() {
return linhas.isEmpty();
}
}
// Segue o codigo do frame:
public class FrameListarFazenda extends javax.swing.JFrame {
private void btVoltarActionPerformed(java.awt.event.ActionEvent evt) {
this.dispose();
}
private JTable tabela;
private ListarFazendas model;
private final Fazenda fazenda = new Fazenda();
private final List<FazendaBean> lista = fazenda.listarFazendas();
private final int quantidadeLista = lista.size();
public FrameListarFazenda() {
super("Teste com Table Model");
initialize();
getModel().addListaDeFazendas(getFazendas());
}
private void initialize() {
setSize(800, 600);
setDefaultCloseOperation(EXIT_ON_CLOSE);
getContentPane().add(new JScrollPane(getTblSocios()));
}
private JTable getTblSocios() {
if (tabela == null) {
tabela = new JTable();
tabela.setModel(new ListarFazendas());
}
return tabela;
}
private ListarFazendas getModel() {
if (model == null) {
model = (ListarFazendas) getTblSocios().getModel();
}
return model;
}
private FazendaBean getFazenda() {
FazendaBean bean = null;
for (int i = 0; i < lista.size(); i++) {
if (!(quantidadeLista == lista.size())){
bean = new FazendaBean();
}
}
return bean;
}
private List<FazendaBean> getFazendas() {
FazendaBean retorno = getFazenda();
if (!(retorno == null)){
lista.add(retorno);
}
return lista;
}
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new FrameListarFazenda().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JButton btVoltar;
private javax.swing.JPanel jPanel1;
// End of variables declaration
}
Alguem sabe como fazer isso!?