Salve a tutti. Posto qui il codice che ho e la mia domanda: Come mai la cella 3 contenente il "checkbox" non riesco a farla diventare editabile?codice:package Componenti; import java.awt.BorderLayout; import java.util.ArrayList; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.table.AbstractTableModel; public class IGAppuntamenti extends JFrame { private ModelloTab modelloTab; private JTable table; private JScrollPane scrollPane; private ArrayList<Appuntamento> listaApp; public IGAppuntamenti(ArrayList<Appuntamento> listaApp) { super ("Elenco Appuntamenti"); setDefaultCloseOperation (JFrame.DISPOSE_ON_CLOSE); setSize(450, 350); setVisible(true); modelloTab = new ModelloTab(listaApp); table = new JTable(modelloTab); scrollPane = new JScrollPane(table); getContentPane().add(scrollPane, BorderLayout.CENTER); } class ModelloTab extends AbstractTableModel { private ArrayList<Appuntamento> listaAppuntamenti; public ModelloTab(ArrayList<Appuntamento> listaApp) { this.listaAppuntamenti=listaApp; } /**Metodo che ritorna il numero di colonne che uso*/ public int getColumnCount() { return 6; } /**Metodo che ritorna il numero di righe utilizzate*/ public int getRowCount() { return listaAppuntamenti.size(); // in base al numero di elementi nell'arraylist } /**Metodo che ritorna l'oggetto presente nella cella indicata dalle coordinate row e col*/ public Object getValueAt(int row, int col) { Appuntamento app = listaAppuntamenti.get(row); switch (col) { case 0: return app.getData().getDataCompleta(); case 1: return app.getOra().getDataCompleta(); case 2: return app.getDescrizione(); case 3: return app.isAlarm(); case 4: return createImage(); case 5: return createImage(); } return null; } /**Metodo che ritorna un'immagine*/ private ImageIcon createImage() { ImageIcon icon = new ImageIcon("image/a.jpeg"); return icon; } /**Meotodo che ritorna in base al numero della colonna passatogli, i titoli delle colonne*/ public String getColumnName(int column) { switch (column) { case 0: return "Data"; case 1: return "Ora"; case 2: return "Descrizione"; case 3: return "Allarme?"; case 4: return "Modifica"; case 5: return "Cancella"; } return ""; // caso default che non si verifica mai se strutturo bene lo switch } /**Metodo che ritorna la classe di cui è composta ogni colonna*/ public Class getColumnClass(int column) { switch (column) { case 0: return String.class; case 1: return String.class; case 2: return String.class; case 3: return Boolean.class; // il renderer/editor di default per Boolean mostra un "checkbox" case 4: return ImageIcon.class; case 5: return ImageIcon.class; } return Object.class; // caso default che non si verifica mai se strutturo bene lo switch } /**Metodo che mi permette di rendere editabili soltanto alcune celle. */ public boolean isCellEditable(int row, int col) { return col ==3; // in questo caso rendo editabile solo la colonna 3 infatti ritorno true quando column=3 } } }
Ho seguito l'esempio fatto da andbin (http://forum.html.it/forum/showthrea...ghlight=Jtable) ma non riesco a capire dove abbia toppato.

Rispondi quotando