IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Agents de placement/Fenêtres Java Discussion :

[SWING] Fichier Properties et Couleurs


Sujet :

Agents de placement/Fenêtres Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 20
    Par défaut [SWING] Fichier Properties et Couleurs
    Bonjour à tous,

    Je développe une interface graphique, et je voudrai rendre le paramétrage des couleurs assez simple, je pensais donc créer un fichier properties mais le truc c'est que je n'arrives pas à trouver comment stocker les couleurs dedans et comment les réutiliser... J'arrives bien à utiliser le fichier.properties pour tout ce qui est récupération et stockage de String mais c'est tout.

    Si quelqu'un à une idée de ce que je pourrais stocker dans mon fichier et comment le récupérer ou meme une autre idée (pour que quelqu un d exterieur : le destinataire du logiciel puisse modifier les couleurs comme il le veut), vos idées seront les bienvenues!
    Merci d'avance

  2. #2
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,

    Le fichier *.propertie me semble convenir...
    Il faudrait que tu te crée une classe qui s'occupera de convertir les valeurs en une instance de la classe Color que tu puisses utiliser.

    Le mieux serait d'utiliser dans cette classe une Map qui contiendrait une association des couleurs les plus courantes avec leurs valeurs respectives, par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    map.put("black", Color.BLACK);
    map.put("red", Color.RED);
    map.put("blue", Color.BLUE);
    Lorsque tu lis ton fichier *.properties, tu utilise ta classe pour rechercher la valeur correspondante dans ta Map (eventuellement avec un toLowerCase() afin de ne pas être embéter par la casse).

    L'inconviénient c'est que cela limite le choix des couleurs aux valeurs de ta Map. Afin de laisser le choix maximum tu peux authoriser l'utilisation des code RGB en hexa (comme pour les feuille de style CSS) : 000000 pour blanc et ffffff pour noir.

    Ce n'est pas très compliqué et tu peux même cumuler cela avec la Map.
    Grosso modo si ta Map te renvoit null et que la chaine fait 6 caractères, tu la convertis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Color color = null;
     
    try {
     
    	int r = Integer.parseInt( pName.substring(0,2), 16);
    	int g = Integer.parseInt( pName.substring(2,4), 16);
    	int b = Integer.parseInt( pName.substring(4,6), 16);
     
    	color = new Color(r,g,b);
     
    } catch (NumberFormatException nfe) {
    	// Format incorrect : Afficher une trace d'erreur 
    }

    En gérant proprement les divers cas d'erreurs et une valeur par défaut ce ne doit pas être très compliqué à faire...

    a++

    PS : tu peux trouver sur cette page un grand nombre de code couleur utilisé pour les CSS : http://www.w3schools.com/css/css_colornames.asp

  3. #3
    Gfx
    Gfx est déconnecté
    Expert confirmé
    Avatar de Gfx
    Inscrit en
    Mai 2005
    Messages
    1 770
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 770
    Par défaut
    Tu peux utiliser Color.decode() qui accept des noms de couleurs (black, white, green...) et des codes hexa (#FF0000, #C0C0C0, ...).

  4. #4
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 918
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 918
    Billets dans le blog
    54
    Par défaut
    Ou int color.getRGB() et new Color(int rgb) couple a Integer.parseInt(String s) et String.valueOf(int value)
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  5. #5
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Gfx
    Tu peux utiliser Color.decode() qui accept des noms de couleurs (black, white, green...) et des codes hexa (#FF0000, #C0C0C0, ...).
    J'suis con j'avais regardé dans la javadoc et je ne l'avais pas vu

    Je me disais que c'était étonnant que cela n'existe pas dans l'API !!!

    a++

Discussions similaires

  1. [SWING][JAVA2D] définir le couleur transparente d'un PNG
    Par TreizeSegments dans le forum 2D
    Réponses: 16
    Dernier message: 03/08/2009, 10h39
  2. [JAR] Comment écrire dans un fichier properties dans un jar
    Par Alec6 dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 05/10/2004, 15h16
  3. [STRUTS] fichier properties indépendant
    Par meufeu dans le forum Struts 1
    Réponses: 5
    Dernier message: 28/07/2004, 16h10
  4. [débutant][Swing] Fichier d'aide
    Par Invité dans le forum AWT/Swing
    Réponses: 5
    Dernier message: 02/06/2004, 15h19
  5. [struts] utiliser plusieurs fichiers properties
    Par jaimepasteevy dans le forum Struts 1
    Réponses: 7
    Dernier message: 03/10/2003, 17h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo