Bonjour à tous !
J'ai un problème, je souhaite ajouter un JButton dans une colonne d'une JXTable.
Ce bouton j'arrive bien à l'ajouté, cependant quand je clique dessus aucune Action (ActionListener) n'est possible.
Voici mon code lorsque je crée mon bouton :

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
  private class TableEditor extends AbstractCellEditor implements TableCellEditor, TableCellRenderer {
 
        private static final long serialVersionUID = 5598763435267075115L;
 
        @Override
        public Object getCellEditorValue() {
            // TODO Auto-generated method stub
            return null;
        }
 
        @Override
        public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected,
                boolean hasFocus, int row, int column) {
            selectLineButton = new JButton("Send ID");
            selectLineButton.addActionListener(new ActionListener() {
 
                @Override
                public void actionPerformed(ActionEvent e) {
                    System.out.println("Test button");
 
                };
            });
 
            return selectLineButton;
        }
Puis comment je l'ajoute dans la JTable :
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
 private void initComponent() {
        setLayout(new BorderLayout());
        table = new JXTable(new TableModel());
        ((JXTable) table).setColumnControlVisible(true);
        ((JXTable) table).setSortable(false);
 
        table.getColumnModel().getColumn(3).setCellEditor(new TableEditor());
        table.getColumnModel().getColumn(3).setCellRenderer(new TableEditor());
 
        if (selectLineButton != null) {
            selectLineButton.addActionListener(new ActionListener() {
 
                @Override
                public void actionPerformed(ActionEvent e) {
                    System.out.println("Send Id");
 
                }
            });
        }
J'espère avoir été claire !
Merci d'avance