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 :

Action sur les HTMLEditorKit


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Juillet 2002
    Messages
    705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 705
    Par défaut Action sur les HTMLEditorKit
    Il me faut un expert pour cette question, ou quelqu'un a eu la male chance d'etre tombé de dessus.

    Je fait un JToggleButton et dedans de met un Action Bold qui vient du HTMLEditorKit.

    Première question: pourquoi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     System.out.println(HTMLEditorKit.BOLD_ACTION); // renvoi html-bold-action
    System.out.println((new HTMLEditorKit.BoldAction()).getValue(Action.NAME)); //renvoit font-bold
    C'est un problème car si vous suivez le tutorial JAVA sur les actions avec une Map<String,Action> et bien on ne retrouve pas l'action souhaité.

    Ensuite (je suis sur JDK 1.6) lorsque je place l'action dans le bouton Bold, si je clique dessus ca fonctionne, c'est a dire que mon button enclenche et desenclenche le mode Bold; par contre j'ai besoin lorsque je déplace mon curseur sur le texte de savoir si je suis en mode Bold ou non.
    Je pensais que la méthode isEnabled permettait cela mais non (normale).
    Comment faire avec les actions. Est ce possible de savoir si un action est "activée ou non ?"

  2. #2
    Membre Expert
    Avatar de xavlours
    Inscrit en
    Février 2004
    Messages
    1 832
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 1 832
    Par défaut
    Bonjour,

    je ne suis pas très calé en composants texte. Je pense (surtout dans du HTML) que les mises en formes utilisent les Element du Document. Mais je me trompe peut-être.
    "Le bon ni le mauvais ne me feraient de peine si si si je savais que j'en aurais l'étrenne." B.V.
    Non au langage SMS ! Je ne répondrai pas aux questions techniques par MP.
    Eclipse : News, FAQ, Cours, Livres, Blogs.Et moi.

  3. #3
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Juillet 2002
    Messages
    705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 705
    Par défaut
    Merci pour votre Attention

    J'ai vu sur le net que plein de gens ont des prb avec le HTMLEditorKit pour la mise en place les listes à puces et numerotés.

    J'ai regardé le code pour étendre HTMLEditorKit et en faite c'est une vrai galère car c'est private partout. J'avoue que le code manque de professionnalisme.

    Notamment on ne peut remplacer un élément par une chaine vide car le HTMLDocument à un méthode setOuterHTML(..) qui insert du HTML et supprime l'ancien. Le problème c'est que cette methode supprime l'ancien HTML, par comparaison du nombre de balises:

    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
     public void setOuterHTML(Element elem, String htmlText) throws
    	                    BadLocationException, IOException {
    	verifyParser();
    	if (elem != null && elem.getParentElement() != null &&
    	    htmlText != null) {
    	    int start = elem.getStartOffset();
    	    int end = elem.getEndOffset();
    	    int startLength = getLength();
    	    // We don't want a newline if elem is a leaf, and doesn't contain
    	    // a newline.
    	    boolean wantsNewline = !elem.isLeaf();
    	    if (!wantsNewline && (end > startLength ||
    				 getText(end - 1, 1).charAt(0) == NEWLINE[0])){
    		wantsNewline = true;
    	    }
    	    Element parent = elem.getParentElement();
    	    int oldCount = parent.getElementCount();
    	    insertHTML(parent, start, htmlText, wantsNewline);
    	    // Remove old.
    	    int newLength = getLength();
    	    if (oldCount != parent.getElementCount()) {
    		int removeIndex = parent.getElementIndex(start + newLength -
    							 startLength);
    		removeElements(parent, removeIndex, 1);
    	    }
    	}
        }
    c'est la condition oldCount!=parent.getElementCount à la fin.
    Ca saoul.

    Si quelqu'un a une solution. Merci

Discussions similaires

  1. Action sur les variables
    Par Norabfr dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 04/04/2007, 15h41
  2. probleme action sur les JComboBox
    Par L4BiN dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 21/12/2006, 16h03
  3. Réponses: 4
    Dernier message: 06/08/2006, 12h50
  4. action sur les touches
    Par max---- dans le forum Allegro
    Réponses: 6
    Dernier message: 10/04/2006, 23h42
  5. [JScrollBar] Récupéré les actions sur les scrollbars
    Par lilou77 dans le forum Agents de placement/Fenêtres
    Réponses: 3
    Dernier message: 20/10/2005, 10h36

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