J'ai une table avec 3 colonnes qui ont les valeurs suivantes dans les en-têtes: "Non", 'x [mm]', 'y [mm]'. Cette table contient les coordonnées des points en millimètres. J'ai une case à cocher sur la vérification de laquelle la table doit repeupler pour montrer les coordonnées en pouces. De plus, les valeurs d'en-tête de colonne devraient être: 'Non.', 'X [IN]' ',' Y [IN] '. P>
En bref, je veux modifier de manière dynamique le texte d'en-tête de la table. P>
en détail: La table est une sous-classe de Jtalie. De plus, une sous-classe de «DefaultTableModel» a été définie comme modèle pour la table. J'ai fourni les valeurs d'en-tête dans le constructeur de la sous-classe Datamodel. P>
une idée? Mon application est compatible avec seulement JDK V1.4, de sorte qu'il serait bon que la solution soit compatible avec la verion :) P>
3 Réponses :
Je ne peux pas tester ici mais familier que cette méthode ' Fondamentalement, vous exécutez ' J'espère que cela aide. P> [faultTableModel.setcolumnIdInditifs (...)] [1] code>' devrait faire ce que vous voulez. P>
defaultTableModel.getcolumnCount () code>' Pour savoir combien de colonnes (sauf si vous ne savez déjà). Ensuite, vous exécutez '
defaulttablemodel.getcolumnName (int Columnindex) code>' Pour obtenir le nom de chacun, changez-le comme vous le souhaitez et mettez-le dans un tableau. Après cela, vous les avez redirigé à l'aide de '
defaultTableModel.setColumnIdInditifs (...) code>'. P>
Vous pouvez directement mettre à jour le nappolummodel directement:
JTableHeader th = table.getTableHeader(); TableColumnModel tcm = th.getColumnModel(); TableColumn tc = tcm.getColumn(0); tc.setHeaderValue( "???" ); th.repaint();
Ce n'est pas une solution à 100% car cela ne fonctionne que jusqu'à ce que le modèle soit modifié ou "TabletrUCTURECTURCHANGED" soit viré. Ensuite, le texte de la colonne sera relu du modèle.
Si tel est un problème, vous pouvez utiliser table.setautocreatecolumnSfromingel (Faux) après la création initiale de la table
Quelqu'un d'autre obtient une fuite de mémoire lorsque cela fait cela? Si j'étale à travers la table pendant une longue période, mon tas grandit et pousse et pousse.
Comment tirer la table Ya @eugeneryzhikov ...? SetAutocreatecolumnSfromingel (Faux) doit-il être appelé avant que SethaderValue () comme @camickr a dit?
Si vous avez le numéro de colonne, utilisez ce code
jtable.getColumnModel().getColumn(5).setHeaderValue("newHeader");
Vous devez appeler jtalhable.getableheader (). Repeindre (); code> après le code pour mettre à jour la table.