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 :
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 :
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 :
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 .