Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

JPROPERTYTABLE : UNE JTABLE ADAPTÉE POUR FAIRE UNE FENÊTRE DE PROPRIÉTÉ À LA VISUAL STUDIO




Description

Cliquez pour voir la capture en taille normale
Depuis le temps que j'en parlais !

Voici donc ma property table : il s'agit d'une JTable avec des fonctionnalités supplémentaires afin de faciliter son utilisation pour en faire une table de propriété : une table à 2 colonnes, une colonne pour du texte statique, et une colonne pour éditer les valeurs.

Le plus simple reste de regarder la capture d'écran pour comprendre ce que je veux dire.

Au menu des cellEditor disponibles pour l'instant :
String
Integer
Double
FileName
Boolean
Date
Hour
Color
Enum (combo pour que l'utilisateur sélectionne une valeur dans une liste de choix).

J'ai utilisé le DatePicker de microba pour l'editeur de date, j'ai donc mis le jar de microba dans mon zip.
 

Source

  • // Utilisation très simple :
  • /**
  • * Création de la table des propriétés :
  • */
  • CCustomTableModel oModeleAffichage = new CCustomTableModel();
  • oModeleAffichage.setColumnCount(2);
  • oModeleAffichage.setRowCount(9);
  • oModeleAffichage.setColumnName(0, "Propriété");
  • oModeleAffichage.setColumnName(1, "Valeur");
  • JPropertyTable oTable = new JPropertyTable(oModeleAffichage);
  • oTable.setMaximumSize(new Dimension(300, 600));
  • oTable.setColumnSelectionAllowed(false);
  • oTable.setRowSelectionAllowed(false);
  • oTable.addPropertyRow(0, "Texte", EDataTypes.dataTypeString, "Toto", null);
  • oTable.addPropertyRow(1, "Fichier", EDataTypes.dataTypeFileName, "", null);
  • oTable.addPropertyRow(2, "Entier", EDataTypes.dataTypeInteger, 1, null);
  • oTable.addPropertyRow(3, "Flottant", EDataTypes.dataTypeFloat, 1.50, null);
  • oTable.addPropertyRow(4, "Booléen", EDataTypes.dataTypeBoolean, true, null);
  • oTable.addPropertyRow(5, "Couleur", EDataTypes.dataTypeColor, Color.red, null);
  • oTable.addPropertyRow(6, "Heure", EDataTypes.dataTypeHour, new Date(), null);
  • oTable.addPropertyRow(7, "Date", EDataTypes.dataTypeDate, new Date(), null);
  • Vector<String> oVecteur = new Vector<String>();
  • oVecteur.add("*");
  • oVecteur.add("**");
  • oVecteur.add("***");
  • oVecteur.add("****");
  • oVecteur.add("*****");
  • oTable.addPropertyRow(8, "Enumération", EDataTypes.dataTypeEnum, 0, oVecteur);
  • JScrollPane sclTable = new JScrollPane(oTable);
  • sclTable.setBounds(oTable.getBounds());
  • add(sclTable);
  • /**
  • * Lecture des données de la table :
  • */
  • System.out.println(oModeleAffichage.getValueAtName("Texte").getValue());
// Utilisation très simple :

/**
* Création de la table des propriétés :
*/
CCustomTableModel oModeleAffichage = new CCustomTableModel();
oModeleAffichage.setColumnCount(2);
oModeleAffichage.setRowCount(9);
oModeleAffichage.setColumnName(0, "Propriété");
oModeleAffichage.setColumnName(1, "Valeur");

JPropertyTable oTable = new JPropertyTable(oModeleAffichage);
oTable.setMaximumSize(new Dimension(300, 600));
oTable.setColumnSelectionAllowed(false);
oTable.setRowSelectionAllowed(false);
oTable.addPropertyRow(0, "Texte", EDataTypes.dataTypeString, "Toto", null);
oTable.addPropertyRow(1, "Fichier", EDataTypes.dataTypeFileName, "", null);
oTable.addPropertyRow(2, "Entier", EDataTypes.dataTypeInteger, 1, null);
oTable.addPropertyRow(3, "Flottant", EDataTypes.dataTypeFloat, 1.50, null);
oTable.addPropertyRow(4, "Booléen", EDataTypes.dataTypeBoolean, true, null);
oTable.addPropertyRow(5, "Couleur", EDataTypes.dataTypeColor, Color.red, null);
oTable.addPropertyRow(6, "Heure", EDataTypes.dataTypeHour, new Date(), null);
oTable.addPropertyRow(7, "Date", EDataTypes.dataTypeDate, new Date(), null);

Vector<String> oVecteur = new Vector<String>();
oVecteur.add("*");
oVecteur.add("**");
oVecteur.add("***");
oVecteur.add("****");
oVecteur.add("*****");
oTable.addPropertyRow(8, "Enumération", EDataTypes.dataTypeEnum, 0, oVecteur);
	
JScrollPane sclTable = new JScrollPane(oTable);
sclTable.setBounds(oTable.getBounds());
add(sclTable);

/**
 * Lecture des données de la table :
 */
System.out.println(oModeleAffichage.getValueAtName("Texte").getValue());

Conclusion

Un petit bug : pour l'éditeur de flottant, bizarrement le texte s'alligne à droite alors que je lui dit de rester à gauche, je vois pas la raison de ce bug, si quelqu'un à une idée, qu'il n'hésite pas !
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Commentaires et avis

signaler à un administrateur
Commentaire de DARKSIDIOUS le 14/03/2007 16:53:35 administrateur CS

Je tiens à remercier Indiana_jules pour son PictureBrowser que j'ai intégré dans ma source afin d'avoir un apercu des images lors de leur ouverture par un JFileChooser.

DarK Sidious

signaler à un administrateur
Commentaire de lex1111 le 30/07/2007 16:32:31

http://common.l2fprod.com/

signaler à un administrateur
Commentaire de DARKSIDIOUS le 30/07/2007 17:55:14 administrateur CS

merci lex, en effet, c'est le propertytable que j'utilise maintenant (celui de l2fprod, comme tu peux le voir dans mes dernières sources :p).

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

JTable et CellEditor, le casse tete !!! [ par srx ] Bonjour,est ce que quelqu'un saurait s'il est possible dans une JTable de définir pour chaque case une CellEditor et un CellRenderer spécifique ?Je cr JTable & son CellEditor [ par tretre72 ] Bonjour.Je voudrais pouvoir afficher l'editeur de cellule sur un "double clique" dans une JTable. perte focus cellEditor JTable [ par dibs33 ] Bonjour,voila j'ai une JTable que je met à jour à à partir d'un fichier, les cellules de ma JTable sont éditables. Je voudrais récupérer toutes les mo Probleme Affichage JTable [ par mikomiko ] Bonjour chers ami, je viens de passer la nuit a essayer d'afficher une JTable :( pourriez vous m'aider s'il vous plait, je suis debutant...Voila en qu JTABLE [ par dude21 ] BonjourJe possède une collection (Vector) que j'aimerais vider dans une JTABLE.Mais avant de faire ceci je souhaiterais vider le contenu da ma JTABLE. [IHM/JTable] avoir une colonne identique a la ligne des titres [ par bygui ] Bonjour,Tout est dans le titre: j'ai créé une JTable et j'ai besoin que ma premiere colonne soit comme la ligne des titres de colonnes (visuellement p Problème de JTable avec Look&Feel [ par ch0upette ] Salut, mon souci peut paraître simple mais me cause de gros problèmes.J'affiche un JTable dans un interface graphique :aucun problème quand j'ai le lo comment recuper les propriétés du Systeme avec java [ par charafax ] Slt, comment je peu récuper les Propriétés du Systeme d'expl avec du JAVA et le resultat le mettre dans une Base de donné Access,  MERCI Probleme avec JTable [ par LordBob ] Bonjour a tous,voila je pose une question sur le forum, car j'ai de grave problème avec le composant JTable. J'ai beau faire des recherches sur le for JTABLE Ligne Total [ par nuns ] Bonjour, je voulais savoir comment je pourrais faire une ligne de total dans mon tableau.parceque j'ai aussi un sorter, qui me les trie mais le proble


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,343 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.