Feuille de propriétés

Soyez le premier à donner votre avis sur cette source.

Vue 7 506 fois - Téléchargée 423 fois

Description

Composant Swing. Feuille de propriétés construite à partir des champs annotés dans le code source.
Ainsi, l'utilisateur peut modifier les champs contenus dans une classe : Fini les longues séries de JLabel + JTextField pour la saisie des données utilisateurs. La partie graphique est auto-généré !
De base, cela fonctionne pour les String, Nombres (int, float , double, ..) et les couleurs
Cette source est basée sur L2FProd.com.

Source / Exemple :


/*

  • Petit exemple d'application : édition d'un profil utilisateur
  • /
package propertygrid; import java.awt.Color; import java.awt.Font; import java.io.File; import javax.swing.JFrame; import javax.swing.JScrollPane; /** *
  • @author ronan
  • /
public class Main { public Main() { JFrame frame = new JFrame("Test"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(300, 300); PropertySheetTable grid = new PropertySheetTable(new ClassPerso("Martin", "Ronan")); frame.getContentPane().add(new JScrollPane(grid)); frame.setVisible(true); } /**
  • @param args the command line arguments
  • /
public static void main(String[] args) { new Main(); } class ClassPerso { @Property(Category = "Identité", Description = "Nom") public String nom; @Property(Category = "Identité", Description = "Prenom") public String prenom; @Property(Category = "Equipe", Description = "Nombre") public int nbre; @Property(Category = "Equipe", Description = "Couleur") public Color color; @Property(Category = "Identité", Description = "Nom équipe") public Font font; @Property(Category = "Identité", Description = "Photo") File file; public ClassPerso(String nom, String prenom) { this.nom = nom; this.prenom = prenom; nbre = 20; color = Color.RED; font = new Font(Font.MONOSPACED, Font.CENTER_BASELINE, 12); } } }

Conclusion :


Il reste des choses à faire : ca serait sympa d'y ajouter un comboBox pour choisir l'objet à éditer.
Remarquer qu'il est possible d'éditer des objets particuliers ( ouverture d'une boite de dialogue ...)

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

guigui37600
Messages postés
11
Date d'inscription
vendredi 31 décembre 2004
Statut
Membre
Dernière intervention
26 mars 2008
-
J'ai mis 7 pour le principe que cela donne un exemple différent de ce que j'ai pu voir sur l'utilisation de cette librairie.
Mon seul regret c'est qu'il ne semble pas y avoir eu de travail pour la compréhension : pas de commentaire ni d'explication sur ce qui a été fait...
Pour information vous trouverez les combo-box implémentée au sein des projets libres qui sont en exemple sur le site de la librairie http://l2fprod.com/common/use.php. Elles sont implémentées nativement dans la librairie.
Au niveau des dates, la librairie offre déjà des possibilité via "com.toedter.calendar.JDateChooser" mais cela reste à confirmer car ça fait longtemps que je ne l'ai pas regardé ni utilisé.
uhrand
Messages postés
491
Date d'inscription
samedi 20 mai 2006
Statut
Membre
Dernière intervention
15 juillet 2012
9 -
Oui, je suppose que toi tu sais comment utiliser ta source. Mais il faudrait penser aussi aux autres utilisateurs en documentant le mode d'emploi. Ton petit exemple d'application n'est pas concluant du tout, parce qu'en fait c'est une application complètement inutile, qui ne fait qu'afficher quelques propriétés. En plus, elle ne fonctionne plus si on la met dans un projet à part....
twinser
Messages postés
32
Date d'inscription
samedi 13 octobre 2007
Statut
Membre
Dernière intervention
26 janvier 2009
-
Si, on peut ajouter comme l'on veut des renderer et des éditeurs. Par exemple dans notre cas, il faut créer deux classes :
public class DateCellRenderer extends DefaultCellRenderer ...
et public class DateChooserEditor extends AbstractPropertyEditor ...
puis enregistrer les classes dans les hashmaps :

PropertyRendererRegistry propRegistery = new PropertyRendererRegistry();
propRegistery.registerRenderer(Date.class,new DateCellRenderer());
grid.setRendererFactory(propRegistery);
et de même avec le editor factory...
uhrand
Messages postés
491
Date d'inscription
samedi 20 mai 2006
Statut
Membre
Dernière intervention
15 juillet 2012
9 -
> je suis étonné que ce code n'apporte pas plus d'engouement

P.ex. il n'y a pas d'éditeur de date et pas de support pour intégrer un éditeur comme "com.toedter.calendar.JDateChooser".

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.