Jbouton dans Jtable quia son AbstractTableModel
Bonjours, alors je suis actuellement en stage, je fait une application en java et j'aurai besoin de votre aide :
Pour résumer :
j'ai un jtable qui a son abstractTablemodel. le tableau est un tableau de contact (nom, prénom, ...) et je souhait rajouter une colonne avec un bouton par ligne qui aura comme action de supprimer la ligne ou se situe le bouton.
Et la je bloque je comprend rien au différent exemple sur internet.
Les données sont chargées via une base de donnée
Code l'abstractTablemodel
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 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109
|
package IHM;
import java.util.ArrayList;
import java.util.List;
import javax.swing.table.AbstractTableModel;
import DAO.ContactHasApplicationHome;
import DAO.ContactHome;
import util.Contact;
import util.ContactHasApplication;
public class Table_Contact extends AbstractTableModel {
private static final long serialVersionUID = 1L;
private final List<Contact> List_Contact= new ArrayList<Contact>();
private final String[] entetes = {"Id", "Nom", "Prénom", "Téléphone", "Email", "Entreprise", "Supprimer"}; // lentête supprimer et pour la colonne avec les boutons
public Table_Contact() // constructeur basique
{
super();
ContactHome contact = new ContactHome();
List <Contact> list= contact.ListContact(); // récuper la liste des contact
for(int i =0; i<list.size();i++)
{
Contact cont = list.get(i);
List_Contact.add(cont);
}
}
public Table_Contact(int id_application, int type) // constructeur selon le type de contact
{
super();
ContactHasApplicationHome contactHasApplication = new ContactHasApplicationHome();
ContactHome contact = new ContactHome();
List <ContactHasApplication> list= contactHasApplication.ListContactHasApplication();
for(int i =0; i<list.size();i++)
{
if((list.get(i).getApplicationIdApplication()==id_application)&&(list.get(i).getTcontactIdTcontact()== type))
{
Contact cont = contact.get_byId(list.get(i).getContactIdContact());
List_Contact.add(cont);
}
}
}
@Override
public int getColumnCount() {
// TODO Auto-generated method stub
return entetes.length;
}
@Override
public int getRowCount() {
// TODO Auto-generated method stub
return List_Contact.size();
}
public String getColumnName(int columnIndex) {
return entetes[columnIndex];
}
@Override
public Object getValueAt(int rowIndex, int columnIndex) {
switch(columnIndex){
case 0:
return List_Contact.get(rowIndex).getIdContact();
case 1:
return List_Contact.get(rowIndex).getNom();
case 2:
return List_Contact.get(rowIndex).getPrenom();
case 3:
return List_Contact.get(rowIndex).getTelephone();
case 4:
return List_Contact.get(rowIndex).getEmail();
case 5:
return List_Contact.get(rowIndex).getEntreprise();
/*case 6:
return new ButtonRenderer();*/ je dois mettre quoi là? pour la colonne à bouton
default:
return null;
}
}
public void removeContact(int rowIndex)
{
List_Contact.remove(rowIndex);
fireTableRowsDeleted(rowIndex, rowIndex);
}
public void addContact(Contact C) {
List_Contact.add(C);
fireTableRowsInserted(List_Contact.size() -1, List_Contact.size() -1);
}
public Contact getData(int row)
{
return List_Contact.get(row);
}
public List<Contact> getContact() {
return List_Contact;
}
} |