Bonjour,
j'ai un probleme avec un TableCellEditor pour ma JTable. j'ai créé une JTable avec dans une colonne un JButton. Pour mettre ce JButton, j'utilise un TableCellEditor. Le probleme est que je définis un TableCellEditor pour toute ma colonne, donc lorsque je clique sur le JButton de la première ou de la 5eme ligne par exemple, le meme evenement est lancé.
Je souhaite définir un TableCellEditor par cellule pour avoir un evenement par cellule mais je ne sais pas comment faire

Creation de la JTable (ce qui m'interesse est la colonne 3 ou 4)

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
			entete = new String[5];
			entete[0] = "Nom du matériel";
			entete[1] = "Quantité";
			entete[2] = "Unité";
			entete[3] = "Voir détail";
			entete[4] = "Supprimer";
 
			tableMat = new ModeleMateriel(entete);
			jTable = new JTable();
			jTable.setModel(tableMat);			
 
			contenu = new ArrayList<Object[]>();
 
			tableMat.setData(contenu);			
 
			TableColumn cC1 = jTable.getColumnModel().getColumn(1);
 
			cC1.setCellEditor(new QuantityEditor());				
 
			TableColumn cC3 = jTable.getColumnModel().getColumn(3);
 
			cC3.setCellEditor(new BoutonDetailEditor());	
 
			TableColumn cC4 = jTable.getColumnModel().getColumn(4);
 
			cC4.setCellEditor(new BoutonSupprEditor());
Le code de mon TableCellEditor nommé BoutonDetailEditor()

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
	  private JButton detail;
 
	  public BoutonDetailEditor () {
	    detail = new JButton();
	    detail.setText("Voir détail");
	    detail.addActionListener(new ActionListener(){
	      public void actionPerformed(ActionEvent event) {
	        System.out.println("yes");
	      }
	    });
	  }
 
	  public java.awt.Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) {
	    return detail;
	  }	 
 
	  public Object getCellEditorValue() {
	    return null ;
	  }
 
	  public void setEnable(boolean enable) {
		  detail.setEnabled(enable);
	  }
 
	  public boolean isCellEditable(EventObject anEvent) {
	    return true;
	  }	  
 
	  public boolean shouldSelectCell(EventObject anEvent) {
	    return true;
	  }
 
	  public boolean stopCellEditing() {
	    return true ; // pour ne pas pouvoir recommencer une édition
	    //return false ; // pour pouvoir recommencer une édition
	  }
 
	  public void cancelCellEditing() {  
	  }
 
	  public void addCellEditorListener(CellEditorListener l) {  
	  }
 
	  public void removeCellEditorListener(CellEditorListener l) {
	  }
Pourriez vous m'aider?