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

AWT/Swing Java Discussion :

[Swing] Utiliser du HTML: Une bonne pratique ?


Sujet :

AWT/Swing Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 13
    Points : 22
    Points
    22
    Par défaut [Swing] Utiliser du HTML: Une bonne pratique ?
    Bonjours tous le monde,

    Aujourd'hui, bien que maitrisant assez bien SWING je me suis retrouvé face à quelques complications pour afficher certains éléments avec un style bien précis.
    Après plusieurs tentatives et recherches, j'ai appris que l'on pouvais utiliser du HTML (et par extension du CSS) avec SWING, dans un JLabel par exemple.

    Je sais qu'avec du temps et de la persévérance j'aurais pu avoir un résultat satisfaisant en n'utilisant que SWING, mais l'utilisation du HTML et CSS m'a grandement facilité la tâche et m'a permit d'avoir exactement le résultat voulut.

    Cependant, soucieux de la qualité de mon code, je me pose quelques question concernant l'utilisation d'HTML avec SWING:
    - Est-ce une bonne pratique ?
    - Est-ce que ça ne surcharge pas trop l'application ?
    - Est-ce que vous l'utilisez souvent ? de temps en temps ? rarement ?

    Votre avis me serait grandement utile


    Bien-sur, je ne compte pas faire toute mon interface en HTML, mais je doit dire que son utilisation, couplé à un peut de CSS, parci-parla me facilite grandement la tâche.

    Je vous remercie d'avance pour vos avis et conseil

    Dranz

  2. #2
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    Ouaif, enfin la version d'HTML supportée par Swing, à savoir la 3.2, est antédiluvienne et supporte très mal tout ce qui est CSS. DOnc tu ne pourras pas aller très loin dans la conception de ton appli non plus.

    Puis niveau maintenance ce n'est pas franchement le top, genre aller planquer des chaînes HTML un peu partout dans tes classes ou des fichier properties...

    Ensuite tout dépend de ce que tu cherchais vraiment à réaliser.
    On ne peut pas dire si c'était une bonne ou un mauvaise idée sans connaître l'utilisation que tu en as fait...

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 13
    Points : 22
    Points
    22
    Par défaut
    Merci pour ces précisions.


    Concernant mon problème, le voici:

    En gros, j'ai un formulaire pour ajouter un client par exemple. Un bouton permet à l'utilisateur de valider sa saisie. A ce moment je fait une série de tests sur les différents champs afin de m'assurer que tous est ok avant l'ajout dans la BDD.

    Si l'utilisateur a mal entré un champ je voudrais l'avertir avec un message qui s'affiche au dessus du formulaire, et qui lui indique quels champs ne vont pas et pourquoi.
    Au lieu d'afficher du texte brute, je l'ai mit dans un cadre à fond rouge et bordure rouge foncée (Cf pièce jointe). Et c'est à ce niveau que je suis resté bloqué avec SWING.


    Ce que je compte faire, c’est une petite méthode à laquel je passe une String contenant mon message d'erreur, et la méthode me renvoie le code HTML correspondant.
    Images attachées Images attachées  

  4. #4
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    SI c'est juste de la présentation, tu peux utiliser un JLabel opaque dont le background est un rouge transparent
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    setBackground(new Color(255,0,0,120))
    et la bordure une LineBorder rouge de deux pixels
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    setBorder(BorderFactory.createLineBorder(Color.red,2));
    Il ne te restera qu'à utiliser des <BR> pour tes retours à la ligne dans la chaine.

  5. #5
    Membre expérimenté Avatar de Ivelios
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2008
    Messages
    1 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 031
    Points : 1 540
    Points
    1 540
    Par défaut
    Pour répondre à ta question :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    - Est-ce que vous l'utilisez souvent ? de temps en temps ? rarement ?
    Jamais! Mais vu comment je me débrouille en HTML/CSS ce n'est pas étonnant si je l'évite.
    Tu arriveras normalement toujours à faire ce que tu veux avec SWING et sans trop de difficulté si c'est simple. Comme ton formulaire d'identification.

  6. #6
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Août 2005
    Messages : 6 854
    Points : 22 873
    Points
    22 873
    Billets dans le blog
    51
    Par défaut
    Utilisation moyenne des qu'il faut mettre un mot en gras dans un JLabel ou une infobulle ou encore avoir des trucs écrits sur plusieurs lignes ou avec des styles différents dans le même label (ex: dans le cas de renderer customises pour des JList).

    La question du choix ne se pose plus depuis qu'ils ont corrige le fait qu'a l'origine, les textes en HTML s’écrivaient avec une police différente de celle des textes normaux (Java 1.2 a 1.3/1.4 ?) ; c'est la seule et unique solution a appliquer pour éviter de trop devoir se casser la tête. D'autant plus que la syntaxe HTML utilisée est simplifiée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <html>Mon <b>texte</b>.</html>
    Pas besoin des balises head, body, etc.

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 13
    Points : 22
    Points
    22
    Par défaut
    Tous d'abord merci pour vos réponses

    C'est vrai qu'avec SWING on est censé pouvoir tous faire, mais personnellement je trouve beaucoup plus simple d'utiliser une ou 2 balises avec un peu de CSS que de s'embêter à définir à la main tous les paramètres d'un composant.


    Après au niveau de la maintenance du code, en se débrouillant bien, on peut avoir nos code HTML regroupés à un même endroit et l'éditer par la suite si besoin est. Mais c'est sur que sans être ordonné ça deviens vite un gros bazars.

Discussions similaires

  1. Réponses: 7
    Dernier message: 23/09/2013, 15h49
  2. [MLD] 6 tables utilisant tous 1 table, bonne pratique?
    Par Enill dans le forum Schéma
    Réponses: 1
    Dernier message: 25/08/2011, 13h07
  3. Conseil pour une bonne pratique (héritage)
    Par coberle dans le forum C++
    Réponses: 5
    Dernier message: 27/07/2010, 12h12
  4. Réponses: 4
    Dernier message: 02/02/2010, 23h49
  5. Réponses: 4
    Dernier message: 07/10/2008, 14h16

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