[Java][Swing] Ajouter une colonne editable à une jtable non editable

Ajouter une colonne editable à une jtable non editable [Java][Swing] - Java - Programmation

Marsh Posté le 22-11-2006 à 18:15:08    

Bonjour,
 
 
Voilà j'ai un petit soucis avec java swing : j'ai une jtable de 6 colonnes défini par un TableModel dans lequel je lui specifie que ces colonnes ne sont pas editables. Je veux lui ajouter une colonne (TableColumn) qui elle devra être editable. Comment puis je faire ? (ca ne marche pas si je mets return columnIndex>5 dans le isCellEditable(), ca marche si je mets return true (mais dans ce cas tt est editable, ce que je ne souhaite pas))...
 
merci de vos réponses
 

Reply

Marsh Posté le 22-11-2006 à 18:15:08   

Reply

Marsh Posté le 28-11-2006 à 19:23:18    

J'ai fait un petit test et ça marche bien, faut juste préciser le modelIndex de la nouvelle colonne :
 

Code :
  1. import javax.swing.JFrame;
  2. import javax.swing.JTable;
  3. import javax.swing.table.AbstractTableModel;
  4. import javax.swing.table.TableColumn;
  5. public class TableTest {
  6.     public static void main(String[] args) {
  7.         JTable table = new JTable(new AbstractTableModel() {
  8.             public int getColumnCount() {
  9.                 return 4;
  10.             }
  11.             public int getRowCount() {
  12.                 return 10;
  13.             }
  14.             public Object getValueAt(int rowIndex, int columnIndex) {
  15.                 return rowIndex + ":" + columnIndex;
  16.             }
  17.             public boolean isCellEditable(int rowIndex, int columnIndex) {
  18.                 return columnIndex >= 4;
  19.             }
  20.         });
  21.         JFrame frame = new JFrame("Test table" );
  22.         frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
  23.         frame.setSize(400, 300);
  24.         frame.getContentPane().add(table);
  25.         frame.setVisible(true);
  26.         table.addColumn(new TableColumn(4));
  27.     }
  28. }

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed