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 :

JOptionPane : Mise en forme des messages


Sujet :

AWT/Swing Java

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    268
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 268
    Par défaut JOptionPane : Mise en forme des messages
    Bonjour !

    Afin d'améliorer l'interface utilisateur, je chercher à mettre en forme mes boites de dialogue. J'ai essayé ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    String mess = "<html><b>Test</b> <br>test\tAutre test</html>";
    JOptionPane.showMessageDialog(NSession.getFrame(), mess, "Titre", JOptionPane.WARNING_MESSAGE);
    Donc ça marche bien, sauf le "\t" ! Comment puis-je mettre une tabulation dans mon message ? (J'avais essayé sans le code "html") Y'a-t-il une balise html pour indiquer la tabulation (je n'ai rien trouvé dans les "caractères spéciaux html"?

    Et à la rigueur, je voudrais savoir si une telle mise en forme est possible sans passer par l'HTML ?

    Merci !

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    429
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 429
    Par défaut
    Bonjour,

    Mais quelle est la définition d'une "tabulation" pour toi dans le contexte d'un JLabel ?
    Si c'est "3 espaces" (par exemple), autant les ajouter toi-même, non ?

    Cordialement,

    Nicolas

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    268
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 268
    Par défaut
    Oui, dans mon cas ce serait un certain nombre d'espaces. Le problème était que les suites d'espaces sont réduites à un seul. Je passe en attendant par une méthode spécifique qui répète le caractère "&nbsp;" autant de fois que je veux de retrait.
    Donc c'était juste pour savoir s'il y avait un "caractère" tabulation plutot qu'un appelle à cette méthode.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    268
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 268
    Par défaut
    Et puis surtout, j'aurais aimé savoir si les mises en formes (gras, souligné, ...) peuvent être faites sans passer par du code html.

    Merci encore !

  5. #5
    Membre chevronné
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    429
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 429
    Par défaut
    A ma connaissance, dans un JLabel, non.

    Mais si ton texte est long, tu peux regarder du côté de JTextPane.

    Nicolas

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    268
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 268
    Par défaut
    Donc si je comprends bien, quand on passe en argument un String, il le transformera en JLabel ?
    Je vais regarder du coté des JTextPane, car en effet la plupars des messages sont assez long et complexes

  7. #7
    Membre chevronné
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    429
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 429
    Par défaut
    Donc si je comprends bien, quand on passe en argument un String, il le transformera en JLabel ?
    C'est moi qui ne comprends plus.
    Si tu crées un JLabel, bien sûr que tu obtiens un... JLabel.
    Si la String que tu donnes au JLabel contient des balises HTML, elles sont converties en mise en forme.

    Je vais regarder du coté des JTextPane
    Tutoriel JTextPane :
    http://java.sun.com/docs/books/tutor...ditorpane.html

    Un exemple de base ci-dessous.

    Cordialement,

    Nicolas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    // appeler le fichier Exemple090_ClasseMinimaleJTextPane.java
    // par Nicolas_75
    // le mercredi 21 février 2007
    // pour http://www.developpez.net/forums/showthread.php?t=281960
     
    import java.awt.Color;
    import javax.swing.*;
    import javax.swing.text.*;
     
    public class Exemple090_ClasseMinimaleJTextPane extends JFrame {
     
        // définition du style "gras et rouge" :
        final private static SimpleAttributeSet BOLD_AND_RED = new SimpleAttributeSet();
        static {
            StyleConstants.setBold(BOLD_AND_RED, true);
            StyleConstants.setForeground(BOLD_AND_RED, Color.RED);
        }
     
        // notre JTextPane :
        private JTextPane textPane;
     
        // le StyledDocument contenu dans le JTextPane :
        private StyledDocument sdoc;
     
        // constructeur :
        public Exemple090_ClasseMinimaleJTextPane() {
     
            // mise en place de la fenêtre principale :
            this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            this.setSize(300, 300);
            this.setLocationRelativeTo(null);
     
            // création du JTextPane :
            textPane = new JTextPane();
     
            // récupération du document contenu dans le JTextPane :
            // (il est bien sûr vide pour l'instant)
            sdoc = textPane.getStyledDocument();
     
            // insertion de texte dans le document :
            try {
                sdoc.insertString(sdoc.getLength(),
                        "Quelques mots écrits normalement\n",
                        null);
                sdoc.insertString(sdoc.getLength(),
                        "Quelques mots écrits en gras rouge\n",
                        BOLD_AND_RED);
                 sdoc.insertString(sdoc.getLength(),
                        "Quelques mots écrits normalement\n",
                        null);
            } catch(Exception e) { e.printStackTrace(); }
     
            // ajout du JTextPane (entouré d'un JScrollPane)
            // à la fenêtre :
            this.add(new JScrollPane(textPane));
        }
     
        // "main" de lancement :
        public static void main(String[] args) {
            new Exemple090_ClasseMinimaleJTextPane().setVisible(true);
        }
    }

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    268
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 268
    Par défaut
    Citation Envoyé par Nicolas_75
    Si tu crées un JLabel, bien sûr que tu obtiens un... JLabel.
    A ce niveau là, mes connaissances sont assez limités, je ne pensais pas que l'argument "message" du JOptionPane serait à la fin un JLabel

    Si j'ai bien suivi, la solution sera de ne plus passer par des JOptionPane, mais de créer une classe me permettant de traiter la mise en forme du texte ?

    Merci pour le code, je vais tenter de mettre tout ça en place !

  9. #9
    Membre chevronné Avatar de Claythest
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    558
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 558
    Par défaut
    Citation Envoyé par JohnNC
    Et puis surtout, j'aurais aimé savoir si les mises en formes (gras, souligné, ...) peuvent être faites sans passer par du code html.

    Merci encore !
    Oui on peut

    Ca se passe via cette classe : http://java.sun.com/javase/6/docs/api/



    Mais j'avoue que dans un JOptionPane, je doute que ce soit possible...

  10. #10
    Membre chevronné
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    429
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 429
    Par défaut
    A ce niveau là, mes connaissances sont assez limités, je ne pensais pas que l'argument "message" du JOptionPane serait à la fin un JLabel
    Désolé, je n'avais pas compris le sens initial de ta phrase. Compris maintenant.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Mise en forme des messages
    Par nico le noob dans le forum Langage
    Réponses: 2
    Dernier message: 15/08/2009, 13h40
  2. question mise en forme des états
    Par cassius777 dans le forum IHM
    Réponses: 7
    Dernier message: 26/02/2006, 20h21
  3. Garder la mise en forme des dossiers sur un CD
    Par tibodoudou dans le forum Autres Logiciels
    Réponses: 2
    Dernier message: 19/12/2005, 16h42
  4. [ACCESS-EXCEL] Mise en forme des tableaux
    Par mpascolo dans le forum Access
    Réponses: 4
    Dernier message: 20/10/2005, 16h03
  5. [CR9] lenteur mise en forme des couleurs dans expert diagram
    Par cdu dans le forum SAP Crystal Reports
    Réponses: 6
    Dernier message: 20/04/2005, 08h48

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