Ombitious_Developper
Messages postés2333Date d'inscriptionsamedi 28 février 2004StatutMembreDernière intervention26 juillet 201338 22 nov. 2007 à 21:24
Salut:
J'ai écrit une méthode plus générique:
JTable table;
public void delete() {
ListSelectionModel selectionModel = table.getSelectionModel();
if (selectionModel.getSelectionMode() == ListSelectionModel.SINGLE_SELECTION) {
int index = table.getSelectedRow();
if (index != -1) {
table.getModel().removeRow(index);
}
}
else {
int[] indexArray = table.getSelectedRows();
if (indexArray.length != 0) {
for (int i = 0; indexArray.length; ++i) {
table.getModel().removeRow(indexArray[i]);
}
}
}
}
Ombitious_Developper
Messages postés2333Date d'inscriptionsamedi 28 février 2004StatutMembreDernière intervention26 juillet 201338 22 nov. 2007 à 21:01
Salut:
private JTable table;
// ...
public void delete() {
int index = table.getSelectedRow();
if (index != -1) {
table.getModel().removeRow(index);
}
}
Bye.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Ombitious_Developper
Messages postés2333Date d'inscriptionsamedi 28 février 2004StatutMembreDernière intervention26 juillet 201338 23 nov. 2007 à 11:18
Salut:
Les méthodes removeRow() et removeRows() appartiennent à la classe DefaultTableModel.
private String[] columns = {...};
private Object[][] data = {...};
private DefaultTableModel model = new DefaultTableModel(data, columns);
private JTable table = new JTable(model);
// ...
private void delete() {
int index = table.getSelectedRow();
if (index != -1) {
model.removeRow(index);
}
}
Ombitious_Developper
Messages postés2333Date d'inscriptionsamedi 28 février 2004StatutMembreDernière intervention26 juillet 201338 23 nov. 2007 à 14:33
Salut:
Personnellement, je te conseille d'utiliser la deuxième version de la méthode delete() parcequ'elle est plus générique et elle permet de supprimer plusieurs lignes séléctionnées.
ulysse00
Messages postés291Date d'inscriptionlundi 6 novembre 2006StatutMembreDernière intervention12 mai 20131 23 nov. 2007 à 20:57
j'ai réglé ce problème et merci encore , je continue avec jtable , je chercher à modifier une ligne si je tape sur le bouton modifier alors le continue de la ligne s'affiche sur JTextfield
f (e.getSource().equals(modifier)) {
System.out.println( model.getColumnName(index));
}
model.getColumnName(index) retourne le nom de la colonne mais je chercher à afficher la valeur de la cellule par exemple la cellule de la deuxième colonne de la premiere ligne
Ombitious_Developper
Messages postés2333Date d'inscriptionsamedi 28 février 2004StatutMembreDernière intervention26 juillet 201338 24 nov. 2007 à 17:45
Salut:
Tu peux utiliser les méthodes setValueAt() et getValueAt() pour modifier et consulter la contenu d'une cellule d'un objet JTable.
Note: Il vaut mieux créer pour chaque colonne un JLabel et un JTextField pour la modification.
private JTable table;
// ...
// La boucle principale
for (int i = 0; i < table.getColumnCount(); ++i) {
// Utiliser les méthodes déjà citées
}
Ombitious_Developper
Messages postés2333Date d'inscriptionsamedi 28 février 2004StatutMembreDernière intervention26 juillet 201338 24 nov. 2007 à 21:10
Salut:
Il faut créer une sous-classe de la classe DefaultTableModel est redéfinir la méthode isCellEditable().
public class CustomTableModel extends DefaultTableModel {
public CustomTableModel() {}
public CustomTableModel(Object[][] dataVector, String[] columnNames) {
super(dataVector, columnNames);
}
@Override
public boolean isCellEditable(int row, int cell) {return false;}
}
// ...
private Object[][] data = ...;
private String[] columnNames = ...;
private JTable table = new JTable(new CustomTableModel(data, columnNames));
salut,
jai une interface client et une interface ListeClient ou il ya un jtable pour la liste des clients je veux quant je click sur le une ligne de jtable puis sur le popumenu modifier d'interface ListClient je fais appel a linteface Client en affectant les valeurs de row da,s les champs de linteface Client par exemple le nom doit etre affecté systematiquement de la ligne sélectionné ds la table ?
svp quelq'un m'aider comment faire car je faire des recherche mé rien :(