bonjour,
j'ai remplie ma table Jtable d'apres la base de données et je veux ajouter des buttons pour faire les CRUD sur la ligne selectionné .
j'ai utilise DefaultTableMode pour remplire la table comme ceci :
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
Object [] tete={"Number","Name","Telephone","Adress"};
        Object [][]données={};
        DefaultTableModel tabmodel =new DefaultTableModel(données, tete);
       ....... 
       List<Entreprise>lE=E.findAll();
 
 
                for(int i=0;i<lE.size();i++)
                  {
                      System.out.println(lE.get(i).getIdEntreprise());
                      tabmodel.addRow(new Object[]        {lE.get(i).getNumEntreprise(),lE.get(i).getNomEntreprise(),lE.get(i).getTelephoneEntreprise(),lE.get(i).getAdresseEntreprise()});
 
 
 
 
                  }
               JtableModel jtab=new JtableModel();
               jTable2.setModel(tabmodel);
et ça marche bien et pour l'ajout des button dans une cellule j'ai utilisé JtableModel comme ceci
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
 
 
public class JtableModel extends AbstractTableModel {
		private static final long serialVersionUID = 1L;
		private static final String[] COLUMN_NAMES = new String[] {"Update","delete"};
 
@Override public Object getValueAt(final int rowIndex, final int columnIndex) {
                      Icon cup = new ImageIcon("desktopapplication1.resources/add.png");
                      String columnName=getColumnName(columnIndex);
			if (columnName.equalsIgnoreCase("Update")) {
				//case 0: return rowIndex;
				//case 1: return "Text for "+rowIndex;
				 final JButton button1 = new JButton("Update", cup);
						button1.addActionListener(new ActionListener() {
							public void actionPerformed(ActionEvent arg0) {
								JOptionPane.showMessageDialog(JOptionPane.getFrameForComponent(button1), 
										"Button clicked for row "+rowIndex);
							}
						});
						return button1;}
                        else if(columnName.equalsIgnoreCase("Delete")){
				final JButton button = new JButton("Delete");
						button.addActionListener(new ActionListener() {
							public void actionPerformed(ActionEvent arg0) {
								JOptionPane.showMessageDialog(JOptionPane.getFrameForComponent(button), 
										"Button clicked for row "+rowIndex);
							}
						});
						return button;
                }
        return null;
			}
		}
et sans oublier
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
TableCellRenderer buttonRenderer = new JTableButtonRenderer();
		jTable2.getColumn("Update").setCellRenderer(buttonRenderer);
		jTable2.getColumn("Delete").setCellRenderer(buttonRenderer);
		jTable2.addMouseListener(new JTableButtonMouseListener(jTable2))
le probleme c'est que je trouve pas la solution de combiner les deux methodes ,""
Si quelqu'un a une methode ou idée priere de l'indiqué .
Cordialement .