Como deixar uma celula do jTable editavel

0 respostas
Jarder_Silva

Bom dia pessoal, uma duvida preciso deixar uma celula do jTable editavel, utilizo meu model

Model:

private ArrayList linhas = null;
private String[] colunas = null;

public MyModel(ArrayList lin, String[] col){

    setLinhas(lin);
    setColunas(col);
    
}

public ArrayList getLinhas() {
    return linhas;
}

public void setLinhas(ArrayList linhas) {
    this.linhas = linhas;
}

public String[] getColunas() {
    return colunas;
}

public void setColunas(String[] colunas) {
    this.colunas = colunas;
}

public int getColumnCount(){
    return colunas.length;
}

public int getRowCount(){
    return linhas.size();
}

public String getColumnName(int NumCol){
    return colunas[NumCol]; 
}

public Object getValueAt(int NumLin, int NumCol){

    Object[] linha = (Object[])getLinhas().get(NumLin);
    return linha[NumCol];
}

@Override
public boolean isCellEditable(int rowIndex, int columnIndex) {
    return false;
}

A classe da minha tabela

public void PreecherTabela(ResultSet Resul) {

ArrayList dados = new ArrayList();
    String[] colunas = new String[]{"Vencimento", "Parcela", "Valor"};
    JTextField dtnasc = new JTextField();
    dtnasc.setBounds(40, 180, 100, 25);

    try {
        while (Resul.next()) {
            String valor = String.valueOf(Resul.getString("VALOR"));
            dtnasc.setText(valor);
            dados.add(new Object[]{Resul.getString("DT_VENCIMENTO"), Resul.getString("N_PARCELA"), jTable.add(dtnasc)});
            
        }
    } catch (SQLException ex) {
        JOptionPane.showMessageDialog(null, "Erro ao setar informações na tabela \n" + ex);
    }

    MyModel myModel = new MyModel(dados, colunas);
    
    jTable.setModel(myModel);
    jTable.getColumnModel().getColumn(0).setPreferredWidth(254);
    jTable.getColumnModel().getColumn(0).setResizable(false);

    jTable.getColumnModel().getColumn(1).setPreferredWidth(40);
    jTable.getColumnModel().getColumn(1).setResizable(false);

    jTable.getColumnModel().getColumn(2).setPreferredWidth(100);
    jTable.getColumnModel().getColumn(2).setResizable(false);

    jTable.getTableHeader().setReorderingAllowed(false);
    jTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
    jTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);

}

Preciso que essa coluna valor e vencimento seja editaveis, e com alguns eventos, exemplo FocusLost.
desde ja Agradeço

Criado 7 de março de 2016
Respostas 0
Participantes 1