Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Erreur / Exception en appliquant un style sur une partie de texte d'un JTextPane [ Divers / Général ] (cbil)

jeudi 15 mai 2008 à 10:37:07 | Erreur / Exception en appliquant un style sur une partie de texte d'un JTextPane

cbil

Bonjour !

Encore moi pour un soucis avec les styles et les JTextPane. Ce n'est pas le nombre de source et de questions qui manque mais j'obtiens une exception que je ne comprend pas.
Et je ne vois pas ce qui ne va pas dans mon code (et je crois qu'il fonctionnait avant...mais j'ai du changer un truc si ca ne marche pas now ^^)

Le code qui ne marche pas, c'est le code qui applique un style (gras) à une partie du texte d'un JTextPane.


StyledDocument sd = this.getStyledDocument();
StyleContext newContext = new StyleContext();
NamedStyle newStyle = newContext.new NamedStyle();
newStyle.addAttribute(StyleConstants.Bold,StyleConstants.Bold); 

//Seulement si un texte est sélectionné
if(this.getSelectedText()!=null)
{
         for(int i=this.getSelectionStart();i<this.getSelectionEnd();i++)
          {                
                sd.setLogicalStyle(i, newStyle);       
          }
}


J'ai essayé également ceci, en m'inspirant d'une source :


StyledDocument sd = this.getStyledDocument();
StyleContext newContext = new StyleContext();
NamedStyle newStyle = newContext.new NamedStyle();
newStyle.addAttribute(StyleConstants.Bold,StyleConstants.Bold); 

//Seulement si un texte est sélectionné
if(this.getSelectedText()!=null)
{
         int iStart = this.getSelectionStart();
         sd.setCharacterAttributes(iStart, this.getSelectionEnd()-iStart, newStyle, false);
}



Les deux lignes en gras sont les lignes qui générent l'erreur (et la même erreur).
Ce qui me rend l'erreur plus compliquée, c'est que je n'arrive pas à remonter jusqu'à un code que j'ai écrit...


Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: javax.swing.text.StyleConstants$FontConstants cannot be cast to java.lang.Boolean

        at javax.swing.text.StyleConstants.isBold(StyleConstants.java:382)
        at javax.swing.text.StyleContext.getFont(StyleContext.java:171)
        at javax.swing.text.DefaultStyledDocument.getFont(DefaultStyledDocument.java:782)
        at javax.swing.text.LabelView.setPropertiesFromAttributes(LabelView.java:128)
        at javax.swing.text.LabelView.sync(LabelView.java:39)
        at javax.swing.text.LabelView.getFont(LabelView.java:191)
        at javax.swing.text.GlyphPainter1.sync(GlyphPainter1.java:205)
        at javax.swing.text.GlyphPainter1.getSpan(GlyphPainter1.java:42)
        at javax.swing.text.GlyphView.getPreferredSpan(GlyphView.java:534)
        at javax.swing.text.FlowView$LogicalView.getPreferredSpan(FlowView.java:707)
        at javax.swing.text.FlowView.calculateMinorAxisRequirements(FlowView.java:216)
        at javax.swing.text.BoxView.checkRequests(BoxView.java:918)
        at javax.swing.text.BoxView.getMinimumSpan(BoxView.java:551)
        at javax.swing.text.BoxView.calculateMinorAxisRequirements(BoxView.java:886)
        at javax.swing.text.BoxView.checkRequests(BoxView.java:918)
        at javax.swing.text.BoxView.setSpanOnAxis(BoxView.java:326)
        at javax.swing.text.BoxView.layout(BoxView.java:691)
        at javax.swing.text.BoxView.setSize(BoxView.java:380)
        at javax.swing.plaf.basic.BasicTextUI$RootView.setSize(BasicTextUI.java:1701)
        at javax.swing.plaf.basic.BasicTextUI.getPreferredSize(BasicTextUI.java:899)
        at javax.swing.JComponent.getPreferredSize(JComponent.java:1632)
        at javax.swing.JEditorPane.getPreferredSize(JEditorPane.java:1372)
        at javax.swing.ScrollPaneLayout.layoutContainer(ScrollPaneLayout.java:769)
        at java.awt.Container.layout(Container.java:1432)
        at java.awt.Container.doLayout(Container.java:1421)
        at java.awt.Container.validateTree(Container.java:1519)
        at java.awt.Container.validate(Container.java:1491)
        at javax.swing.RepaintManager.validateInvalidComponents(RepaintManager.java:635)
        at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(SystemEventQueueUtilities.java:127)
        at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)

Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: javax.swing.text.StyleConstants$FontConstants cannot be cast to java.lang.Boolean
...(et ça continue ;) dans le même type)



Avez-vous une idée d'où ça vient ?

Merci beaucoup.

A+
Cbil










Cette discussion est classé dans : java, text, javax, swing, at


Répondre à ce message

Sujets en rapport avec ce message

Java sous Linux mandrake 10.0 community [ par nounouX ] Bonjour a tous , voila j'ai un probleme avec l'interface graphique en Java sous linux j'ai fait un tout petit programme en java (c'est le début en fai Probleme dans JTable ( Probléme des champs vides ) [ par amine1234Z ] Probléme de champs vides::::::: c'est Urgent !! pour l'elaboration de mon application, SVP aider moi !! quand je veux affichier des enregistrement p JTable (aider moi SVP) please !! [ par amine1234Z ] Bonsoir voila j'ai ajouter juste le code, j'ai pas pu ajouter la base de donnée est ce que qlq un peut m'aider SVP . - c'est a vous de la créé Problème de ScrollBar [ par Al3x38 ] Bonjour tout le monde,Voila j'ai un petit soucy pour mon projet d'info ! je n'arrive pas à mettre une scrollbar dans un jtextarea. Bon pour indication java.lang.noclassdeffounderror: javax/comm/portinuseexception [ par 7ider5 ] salut!j'ai réalisé d'un coté une appli client/serveur utilisant le protocole SSL qui marche.d'un autre coté une appli utilisant une comm RS232 avec ja Un ptit conseil/aide serait le bienvenue (Java graphique) [ par Al3x38 ] Bonjour tout le monde ;)Voila, dans le cadre d'un projet d'informatique, je dois réaliser un petit programme en java avec une interface agéable ! Alor Faire une grille de Jlabel dans une JFrame [ par ABF ] Bonjour, Je voudrais : 0) demander de sélectionner une map 1) charger un fichier texte, le parser en fonction des | et remplir un tableau 2) generer Remplir Combobox sous netbeans [ par Bouboukick ] Bonjour j'ai un code qui se connecte a mon port com et me fournit aussi tout les port disponible sur mon pc.Le souci est que j'aimerais pouvoir mettre Lien entre deux classe [ par Bouboukick ] Bonjour, je suis occupé de faire un programme sous NetBeans et j'ai 2 fichier l'un pour mon interface graphique l'autre pour me connecter à mon port c


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 2,855 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.