PB suppression de ligne dans JTable

PB suppression de ligne dans JTable - Java - Programmation

Marsh Posté le 30-01-2010 à 17:33:23    

Bonjour,  
 
Je suis actuellement en train de coder un JTable alimenté par une table MySql.  
L'affichage s'effectue correctement.  
 
En revanche j'ai ajouté un bouton "Supprimmer" afin de pouvoir supprimer la ligne sélectionnée dans mon JTable.  
 
Rien ne se passe !  
 
Est-ce que quelqu'un pourrait voir d'où vient mon problème ? Ce serait très sympa de votre part car j'ai eu beau regardé ici-là les mêmes sujets que celui-ci et résolus mais chez moi ça ne résoud pas mon problème.  
 
Voici le code source de ma classe :  
 
/*  
* Created by JFormDesigner on Sat Jan 23 21:52:40 CET 2010  
*/  
 
package WCIhm;  
 
+import java.awt.*;  
 
public class V_RefCompanyType extends JPanel implements ActionListener {  
 
private void buttonDeleteRow(ActionEvent e) {  
int reponse = JOptionPane.showConfirmDialog(this,  
"Êtes-vous sûr de vouloir supprimer ce type de société ?",  
"", JOptionPane.YES_NO_OPTION);  
if (reponse == JOptionPane.YES_OPTION) {  
try {  
model1.removeRow(table1.getSelectedRow());  
} catch (Exception ee) {  
JOptionPane.showMessageDialog(this, ee.getMessage(),  
"Erreur", JOptionPane.ERROR_MESSAGE);  
}  
}  
}  
 
public V_RefCompanyType() throws HibernateException {  
// JFormDesigner - Component initialization - DO NOT MODIFY //GEN-BEGIN:initComponents  
// JFormDesigner - End of component initialization //GEN-END:initComponents  
 
// ************** //  
// BEGIN SPECIFIC //  
// ************** //  
 
T_refcompanytype = vC_WCRefCompanyType.read("from RefCompanyType" );  
 
model1 = new tabModel() {  
Class[] columnTypes = new Class[] { String.class, String.class };  
 
@Override  
public Class<?> getColumnClass(int columnIndex) {  
return columnTypes[columnIndex];  
}  
};  
 
table1.setModel(model1);  
table1.setEditingColumn(0);  
table1.setEditingColumn(1);  
 
// Renderer  
table1.getColumnModel().getColumn(0).setCellRenderer(new R_TableCellRenderer());  
table1.getColumnModel().getColumn(1).setCellRenderer(new R_TableCellRenderer());  
 
table1.setVisible(true);  
scrollPane1.setViewportView(table1);  
scrollPane1.setVisible(true);  
setLocation(0, 0);  
 
setVisible(true);  
 
// ************** //  
// END SPECIFIC //  
// ************** //  
 
}  
 
public class tabModel extends DefaultTableModel {  
 
public tabModel() {  
super();  
}  
 
public int getRowCount() {  
return T_refcompanytype.length;  
}  
 
public int getColumnCount() {  
return columnNames.length;  
}  
 
public String getColumnName(int columnIndex) {  
return columnNames[columnIndex];  
}  
 
public Object getValueAt(int rowIndex, int columnIndex) {  
switch (columnIndex) {  
case 0:  
return T_refcompanytype[rowIndex].getCompanyTypeCode();  
case 1:  
return T_refcompanytype[rowIndex].getCompanyTypeLabel();  
default:  
return null; // Ne devrait jamais arriver  
}  
}  
}  
 
public void actionPerformed(ActionEvent arg0) {  
 
}  
 
// JFormDesigner - Variables declaration - DO NOT MODIFY //GEN-BEGIN:variables  
// JFormDesigner - End of variables declaration //GEN-END:variables  
 
// ************** //  
// BEGIN SPECIFIC //  
// ************** //  
 
static RefCompanyType[] T_refcompanytype;  
static String[] columnNames = { "Code", "Libellé"};  
static WCRefCompanyType vC_WCRefCompanyType = new WCRefCompanyType();  
static RefCompanyType[] v_T_refcompanytype;  
static tabModel model1;  
 
// ************** //  
// END SPECIFIC //  
// ************** //  
 
}  

Reply

Marsh Posté le 30-01-2010 à 17:33:23   

Reply

Marsh Posté le 01-02-2010 à 11:05:58    

Comme tu peux voir ton DefaultTableModel n'a pas de méthode pour supprimer des données dans ton model T_refcompanytype donc il ne peux pas le faire.
 
Il te faut supprimer de ton model, et informer le composant que les données ont changées (Model View Controller) avec par exemple un fireTableDataChanged.  
 
Tu peux recharger le model aussi après suppression...

Reply

Marsh Posté le 04-04-2010 à 13:56:53    

@morrissey4:
SVP, quel est le code d'affichade dans un jtable apartir d'une base ????
j'utilise netbeans and mysql

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed