Boa tarde pessoal,
sou novo em programação Java e estou com uma dificuldade quando coloco checkbox dentro de uma JTable. Já li vários tópicos sobre o assunto, mas mesmo assim não consegui resolver…
Basicamente eu tenho uma tabela que é preenchida com dados de um BD e nas ultimas duas colunas eu quero colocar os checkbox, ja consegui faze-los aparecer, mais não consigo marca-los…
sera q alguem pode me ajudar??
Segue meu codigo…
CODIGO ABSTRACTTABLE MODEL:
package ModeloBeans;
import java.util.ArrayList;
import javax.swing.table.AbstractTableModel;
public class ModeloTabela extends AbstractTableModel{
private ArrayList linhas = null;
private String[] colunas = null;
public ModeloTabela (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];
}
public Class getColumnClass(int c){
return getValueAt(0, c).getClass();
}
public boolean isCellEditabe(int row, int col){
return col == 0;
}
public void setValueAt(Object valor, int numLin, int numCol){
Object[] linha = linhas[numLin]; // AQUI TEM UM ERRO "ARRAY REQUIRED, BUT ARRAYLIST IS FOUND" NAO SEI COMO RESOLVER??
linha[numCol] = valor;
fireTableDataChanged();
}
}
E AQUI ONDE EU PREENCHO A TABELA
public void preencherTabelaAgendaProfissionais (String Sql){
ArrayList dados = new ArrayList();
String [] colunas = new String [] {"Chegada","Prontuário","Paciente","Profissional","Especialidade",
"Data","Presença","Atendimento"};
conex.conexao();
conex.executaSql(Sql);
try{
conex.rs.first();
do {
dados.add(new Object[] {conex.rs.getInt("chegada"),conex.rs.getInt("prontuario"),
conex.rs.getString("paciente"),conex.rs.getString("profissional"),conex.rs.getString("especialidade"),
conex.rs.getString("data"),conex.rs.getBoolean("presenca"),conex.rs.getBoolean("consulta")});
} while (conex.rs.next());
}catch(SQLException ex){
JOptionPane.showMessageDialog(null, "Ainda não existem agendamentos para este dia! \nPara adicionar clique em NOVO" );
}
ModeloTabela modelo = new ModeloTabela(dados, colunas);
jTableAgendaProfissional.setModel(modelo);
jTableAgendaProfissional.getColumnModel().getColumn(0).setPreferredWidth(70);
jTableAgendaProfissional.getColumnModel().getColumn(0).setResizable(false);
jTableAgendaProfissional.getColumnModel().getColumn(1).setPreferredWidth(70);
jTableAgendaProfissional.getColumnModel().getColumn(1).setResizable(false);
jTableAgendaProfissional.getColumnModel().getColumn(2).setPreferredWidth(150);
jTableAgendaProfissional.getColumnModel().getColumn(2).setResizable(false);
jTableAgendaProfissional.getColumnModel().getColumn(3).setPreferredWidth(180);
jTableAgendaProfissional.getColumnModel().getColumn(3).setResizable(false);
jTableAgendaProfissional.getColumnModel().getColumn(4).setPreferredWidth(120);
jTableAgendaProfissional.getColumnModel().getColumn(4).setResizable(false);
jTableAgendaProfissional.getColumnModel().getColumn(5).setPreferredWidth(80);
jTableAgendaProfissional.getColumnModel().getColumn(5).setResizable(false);
jTableAgendaProfissional.getColumnModel().getColumn(6).setPreferredWidth(70);
jTableAgendaProfissional.getColumnModel().getColumn(6).setResizable(false);
jTableAgendaProfissional.getColumnModel().getColumn(7).setPreferredWidth(80);
jTableAgendaProfissional.getColumnModel().getColumn(7).setResizable(false);
jTableAgendaProfissional.getTableHeader().setReorderingAllowed(false);
jTableAgendaProfissional.setAutoResizeMode(jTableAgendaProfissional.AUTO_RESIZE_OFF);
jTableAgendaProfissional.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
conex.desconecta();
}