Accueil > Forum > > > > JTable et JCheckbox
JTable et JCheckbox
vendredi 15 juin 2007 à 00:20:35 |
JTable et JCheckbox

greglover
|
Bonsoir, je sais que l'on va me sauter dessus pour me dire que le sujet a déjà été traité 20 fois mais malgré l'aide que je trouve sur le net, je n'arrive pas l'adapter à mon code. En fait, j'ai réussi mais qu'un peu lol. A l'initialisation, la colonne checkbox normalement est en fait "true" "false" par contre si je clic sur un true ou un false, tant que le clic est enfoncé je vois la checkbox qui se coche et se décoche au fur et à mesure de mes clics sur le mot. Je sais pas si je suis compréhensible, j'espère. J'espère aussi que quelqu'un pourra m'aider. Voici une grosse partie de ma classe .... public class Cantine extends JPanel { public void cantine() { try { setSize(800, 570); Vector columnNames = new Vector(); Vector data = new Vector(); try { // Se connecter à la base de donnée Class.forName("com.mysql.jdbc.Driver"); Connection connection = (Connection) DriverManager.getConnection("jdbc:mysql://localhost/test_prog","root","" ); // Récupérer les données des élèves Statement stmt = (Statement) connection.createStatement(); String sql = "SELECT nom_enfant,prenom_enfant,classe_enfant,cantine_enfant,cantine_total_enfant FROM enfant WHERE sortie_enfant='' ORDER BY classe_enfant DESC,nom_enfant,prenom_enfant"; ResultSet rs = (ResultSet) stmt.executeQuery( sql ); // Récupérer le titre des colonnes ResultSetMetaData md = (ResultSetMetaData) rs.getMetaData(); // Récupérer le nombre de colonne +1 pour le montant int columns = md.getColumnCount()+1;
// Récupérer le nom des colonnes for (int i = 1; i <= columns; i++) { if (i==5){columnNames.addElement("MONTANT TTC");break;} columnNames.addElement( md.getColumnName(i).replace("_enfant", "").replace("_", " ").replace("garderie", "gard.").toUpperCase()); }
// Récupérer les données des colonnes // 1. Test si ya quelquechose à lire, donc test si la classe existe // 2. Remet le pointeur au début // 3.Tant qu'il y a quelquechose à lire if (rs.next()) { rs.beforeFirst(); while (rs.next()) { fenetre.setCourantPanel(Cantine.this); Vector row = new Vector(columns); //récupération des valeurs de la bdd //prépare la ligne for (int i = 1; i <= columns; i++) { row.addElement( rs.getString("nom_enfant") ); row.addElement( rs.getString("prenom_enfant") ); row.addElement( rs.getString("classe_enfant") ); row.addElement( new Boolean(false)); row.addElement( df.format(rs.getDouble("cantine_total_enfant"))); } if (row.elementAt(4).equals(",00")) { row.setElementAt(0, 4); } // ajoute la ligne data.addElement( row ); } } else { JOptionPane.showMessageDialog(null, "Problème de base de donnée !!!", "Erreur", JOptionPane.ERROR_MESSAGE); } // Tout fermer rs.close(); stmt.close(); } catch(Exception e){} // Créer la table avec les données de la base TableModelCustom model = new TableModelCustom(data, columnNames); model.getColumnClass(3); // Rends certaines colonnes éditables model.addEditableColumn(3); // Application du modèle au tableau table.setModel(model); // Redimensionne for (int i=0;i<=4;i++) { TableColumn column = table.getColumnModel().getColumn(i); switch (i) { case 0:column.setMaxWidth(225);column.setMinWidth(200);break; case 1:column.setMaxWidth(225);column.setMinWidth(200); break; case 2:column.setMaxWidth(125);column.setMinWidth(100);break; case 3:column.setMaxWidth(125);column.setMinWidth(100); break; case 4:column.setMaxWidth(125);column.setMinWidth(100);break; } } // Centre le contenu des cellules DefaultTableCellRenderer custom = new DefaultTableCellRenderer();
custom.setHorizontalAlignment(SwingConstants.CENTER); for (int k=0; k < table.getColumnCount(); k++) { table.getColumnModel().getColumn(k).setCellRenderer(custom); } // Autorise le redimensionnement manuel et interdit le déplacement de colonne table.getTableHeader().setReorderingAllowed(false); table.getTableHeader().setResizingAllowed(true); } catch (Exception e) {} lbl_effectif.setText("Effectif : "+table.getRowCount()); // ajout du panneau add(getMain(), BorderLayout.CENTER); }
et le table model :
import java.util.ArrayList; import java.util.Vector;
import javax.swing.table.DefaultTableModel;
public class TableModelCustom extends DefaultTableModel { // convertion arraylist en integer private ArrayList<Integer> editableColumn; // Vector permet de créer un tableau dont la taille évolue au fur et à mesure des besoins public TableModelCustom(Vector data, Vector columnNames) { // execution classe mère super(data, columnNames); // préparation à la surcharge editableColumn = new ArrayList<Integer>(); } @Override // override veut dire surcharge, il sert pour la javadoc si j'ai le temps de la faire ;) public boolean isCellEditable(int row, int column) { for(int i: editableColumn) { if(i == column) { return true; } } return false; } public Class getColumnClass(int c) { return getValueAt(0, c).getClass(); } public void addEditableColumn(int i) { // rend une colonne éditable (à utiliser pour un tableau non éditable) editableColumn.add(i); }
public void removeEditableColumn(int i) { // rend une colonne non-éditable (à utiliser pour un tableau éditable) editableColumn.remove(i); }
}
je capte pas trop les modèle alors j'ai fais de mon mieux.
Merci pour votre aide
|
|
dimanche 17 juin 2007 à 17:18:51 |
Re : JTable et JCheckbox

theguitou
|
Je n'ai pas tout compris à ton problème, mais va voir le tuto de sun, il y a tout dedans : http://java.sun.com/docs/books/tutorial/uiswing/components/table.html
|
|
dimanche 17 juin 2007 à 22:44:12 |
Re : JTable et JCheckbox

greglover
|
j'avais déjà vu ce tuto et n'y avait pas trouvé la solution.
Mais j'ai contourné le problme puisqu'en fait des checkbox n'était pas approprié.
A+ et merci de ta réponse
|
|
Cette discussion est classée dans : int, rs, vector, enfant, column
Répondre à ce message
Sujets en rapport avec ce message
Recuperation valeur cellule jtable [ par kwuy ]
Bonjour, je debute en java et je voudrais savoir comment recuperer la valeur d'une cellule dans une jtable (cette cellule est un boolean visible sous
ajouter des bouton dans un JTable [ par genjouna ]
slt tout le monde, j'ai un tableau qui est rempli par des données prises de ma base de donnée mais je veux faire des actions sur ma table :je veux ajo
problem pour classe vector [ par khazzab ]
salut j'ai un fichier .txt qui contient dans la premier partie des balises que je doit les eliminé et la seconde partie est text simple par exeemple
probléme d'affichage de la JTable [ par othmano246 ]
bonjour , j'ai un probléme je me connecte à la BD à partir du programme en java j'ai insérer des ligne dans la BD mais le probléme c'est k'il m'affic
Ajout d'une ligne editable à une jTable [ par roura22 ]
Salut, J'ai une jTable remplie à partir de la base de données, je veux maitenant lorsque l'utilisateur appuie sur le bouton "+" une ligne vide éditabl
tri de colonne dans un jtable [ par nam90 ]
bonjour à tous,voilà de puis quelques temps j'essaye de trier les colonnes de ma jtable et ça marche bien, le seul problème se trouve sur les colonnes
boucle jtable [ par johnjjj ]
bonjour je souhaite afficher le contenu de jtable jtable contient 3 colonne et plusieurs ligne avec ce code sa marche pas il me donne seulement le
Supprimer "0" d'un tableau [ par Conurbateur ]
Bonjour,Je cherche à créer une méthode pour supprimer les "0" dans un tableau, j'utilise donc cette méthode :import java.util.*;public class Test {
optimisation combinatoire [ par gilmourish ]
concernant un conception d'un algorithme génétique il y'a quelqu'un qui peut m'aider? je veux la génération aléatoire d'une population de n individus,
Afficher les données de ma table dans un jTable [ par ndaseraphin ]
Bonjour, Je travaille sous Netbeans 7.Je suis débutant en java. J'ai un jTable dans un jSrollPane dans lequel je veux afficher les donner de ma table
Livres en rapport
|
Derniers Blogs
[WP7] DYNAMICALLY CHANGE STARTUP PAGE[WP7] DYNAMICALLY CHANGE STARTUP PAGE par KooKiz
Let's say that you want to allow the user to customize the startup page of your application. You can easily change the startup page by editing the 'NavigationPage' attribute in the manifest file. But the manifest cannot be modified once the applicatio...
Cliquez pour lire la suite de l'article par KooKiz SESSION SILVERLIGHT 5 3D : SLIDES ET DEMOSSESSION SILVERLIGHT 5 3D : SLIDES ET DEMOS par Groc
Durant les techdays, j'ai eu le plaisir d'animer une session sur Silverlight 5 et la 3D avec Simon Ferquel. Comme promis, voici nos slides et mes démos (celles avec le viper BSG) ici et là. Pour mémoire, les démos utilisent toutes le viper BSG...
Cliquez pour lire la suite de l'article par Groc [TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES[TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES par gpommier
Suite à la session que j'ai présenté sur WebMatrix 2, vous pouvez trouver les slides ici, ainsi que les démos en packages nuget : démos1 et démos2 J'en profite pour remercier chaleureusement tous ceux qui sont venus très nombreux à cette sess...
Cliquez pour lire la suite de l'article par gpommier [SHAREPOINT] LES SESSIONS TECHDAYS 2012.[SHAREPOINT] LES SESSIONS TECHDAYS 2012. par Patrick Guimonet
Voici donc pour ceux qui n'ont pas pu venir, ou ceux qui n'ont pas pu toutes les suivre la liste des sessions SharePoint aux TechDays 2012, que je mettrais à jour dès que les liens des vidéo seront disponibles. Ou ici : http...
Cliquez pour lire la suite de l'article par Patrick Guimonet
Logiciels
Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning
|