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][Chat]JTextPane ou JEditorPane ?


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Expert confirmé
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Par défaut [Swing][Chat]JTextPane ou JEditorPane ?
    Bonsoir

    je suis en train de developper un petit chat en java et pour le moment j'utilisais un JTextArea, mais je veut ajouter de nouvelles fonctionnalités à mon chat.

    Et je ne sais pas quoi choisir entre le JTextPane et le JEditorPane (d'ailleurs je ne comprends pas vraiment la différence ), sachant que je devrai pouvoir y afficher :
    • Du texte de plusieurs couleurs (je pensais faire avec du html, c'est une bonne idée ?)
    • Des smileys
    • Des liens


    merci d'avance J'avoue que je suis un peu perdu... bien que je penche plutot pour un JEditorPane

  2. #2
    Membre émérite
    Avatar de bbclone
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 537
    Par défaut
    JTextPane extend JEditorPane.
    moi j'utilise JTextPane pour mon chat.

    lequel choisir regarde la
    http://java.sun.com/docs/books/tutor...ditorpane.html

  3. #3
    Expert confirmé
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Par défaut
    Merci de ta réponse

    Donc, si j'ai bien compris, avec un JTextPane, je vais tout écrire dans le styledDocument, c'est ca ?

    Pour la couleur d'un texte, je devrai aussi tout dire lors de l'insertion c'est juste ?

    Encore, une chose, pour inclure une image, un smiley par exemple, il me suffira d'employer insertIcon ?

    Encore merci

  4. #4
    Membre éclairé Avatar de soad
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    520
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2004
    Messages : 520
    Par défaut
    Hello...

    Si tu veux, ce soir je t'envoi une class qui hérite de JTextPane que j'avais fait pour un chat...



    Juste une p’tite question: ton chat c'est un projet personnel ? Tu comptes le mettre en ligne plus tard ou c'est seulement pour t'exercer ?

  5. #5
    Expert confirmé
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Par défaut
    Je veut bien regarder ta classe

    C'est un projet personnel que je fais pour employer en classe et pour le plaisir, mais j'ai pas réfléchi si je veut le mettre à dispo ou pas, je verrai

    De plus, il faut encore que je finisse mon logiciel actuel (gestion de films) avant de faire le chat

  6. #6
    Membre émérite
    Avatar de bbclone
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 537
    Par défaut
    moi j'utilise une classe a moi qui extend DefaultStyledDocument pour afficher les icones

    tout ce que j'ai fais c'est un peu lon a tout expliquer parce que c'est tout une architecture autour avec des classe qui extend DefaultEditorKit DefaultStyledDocument StyleContext StyleConstants etc

    pour faire court
    tu peux commencer par regarder les StyledDocument et tout ce qui tourne autour.

    voila une idee de depart.

    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
     
    class MyOwnStyledDocument extends DefaultStyledDocument { 
     
        MutableAttributeSet coloredText;
     
        private DefaultStyledDocument doc;
        private Element rootElement;
     
        private Style anIconStyle = null;
        private Style aComponent = null;
     
        public SyntaxDocument() {
            doc = this;
            rootElement = doc.getDefaultRootElement();
     
     
            coloredText = new SimpleAttributeSet();
            StyleConstants.setForeground(coloredText, Color.red);
     
            doc.addStyle("anIconStyle", null);
            StyleConstants.setIcon(aIconStyle, new ImageIcon("path to your smiley.png")); 
     
     
            aComponent = doc.addStyle("aComponent", null);
            JLabel aLink = new JLabel();  // JButton,
            aLink.bindToWhatEverAction(); // this is up to you.
            StyleConstants.setComponent(aComponent, aLink);
        }
     
    	  /* overrided  method */
        public void insertString(int offset, String s ..) throws BadLocationException {
            super.insertString(offset, s, ...);
            // now apply you own styles
            applyStyles(offset, s);
        }
     
        /* overrided  method */
        public void remove(...) throws BadLocationException {
            super.remove(.....);
            ...
        }
     
        private void applySttles() {
             ... test which style match to you changes.
             // here a colored text in red
             doc.setCharacterAttributes(fromOffset, ToOffset, coloredText, false);
     
             // here a smiley
             doc.insertString(offset, "what ever (it will be ignored)", anIconStyle);
     
             // here a link.
             doc.insertString(offset, "what ever (it will be ignored)", aComponent);
        }
     
    }
    j'ai pas tester mais l'idee est la.
    dans mon chat que je fais, c'est ca mais tout est dynamique meme les styles.


    aussi tout ce que tu peut faire avec un JEditorPane tu peux le faire avec un JTextPane le contraire c'est pas vrai.

    essaye, teste ce qui correspond le plus a ce que tu veux.

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

Discussions similaires

  1. [Swing] Centré un texte dans un JTextPane
    Par titi_22 dans le forum AWT/Swing
    Réponses: 7
    Dernier message: 24/06/2011, 16h09
  2. [Swing] Imprimer des JeditorPane sur plusieurs pages ?
    Par bilou_lelapinou dans le forum AWT/Swing
    Réponses: 22
    Dernier message: 29/11/2006, 22h28
  3. [SWING][JEditorPane] retour à la ligne automatiques
    Par narmataru dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 10/02/2006, 17h52
  4. [Swing] JeditorPane et HTML
    Par Michel38 dans le forum AWT/Swing
    Réponses: 6
    Dernier message: 05/02/2006, 18h42

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