Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1829 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  [Java] JEditorPane et couleur du texte

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Java] JEditorPane et couleur du texte

n°1520134
Jubijub
Parce que je le VD bien
Posté le 26-02-2007 à 14:42:43  profilanswer
 

Je me perds dans cette interface.
Je veux faire un truc a priori tout simple :  
j'ai un JEditorPane, et je veux y rajouter des lignes...mes lignes peuvent avoir 3 couleurs différentes...
 
j'ai compris qu'il fallait que je passe par le document, mais j'arrive pas à utiliser la méthode insertString.
 
J'ai essayé ça :  

Code :
  1. pane.getDocument().insertString(offset, text, sas);


 
l'offset est bon, le texte aussi, mais je comprends pas quoi mettre comme AttributeSet. J'ai essayé de rajouter un attribut dans l'attributeSet. Visiblement ca marche avec un système de clé + valeur. Je crois avoir compris comment spécifier la clé, mais pas la valeur...au final j'ai ça :  
 

Code :
  1. int offset = pane.getText().length();
  2.  SimpleAttributeSet sas = new SimpleAttributeSet();
  3.  sas.addAttribute(CharacterConstants.Foreground, new Color(255,0,0));
  4.  try {
  5.   pane.getDocument().insertString(offset, text, sas);
  6.  } catch (BadLocationException e) {
  7.   // TODO Auto-generated catch block
  8.   e.printStackTrace();
  9.  }


 
mais ca change rien, mon texte est toujours noir...


---------------
Jubi Photos : Flickr - 500px
mood
Publicité
Posté le 26-02-2007 à 14:42:43  profilanswer
 

n°1520485
nraynaud
lol
Posté le 26-02-2007 à 19:35:04  profilanswer
 

de ce que j'avais fait :
ajouter un style au document :

Code :
  1. Style global = document.addStyle("global", null);
  2.         Style s = document.addStyle(CLOCK, global);
  3.         StyleConstants.setForeground(s, Color.BLUE);


(bon ok, 2 styles)
 
puis à l'utilisation je créé l'attributeSet à partir du style.  
 
c'est dans ce merdier :
http://opensvn.csie.org/jcoincoin/ [...] neGUI.java


---------------
trainoo.com, c'est fini
n°1520512
Jubijub
Parce que je le VD bien
Posté le 26-02-2007 à 19:56:21  profilanswer
 

ah ok...j'avais bien vu ce truc du style, mais j'avais pas compris comment créer un style...en fait tu le crées, et tu le tune après...
 
je sais pas ce que t'en penses, mais je la trouve imbitable cette API document...c'est surement très puissant, mais c'est pas accessible :/
 
Merci pour le code :)


---------------
Jubi Photos : Flickr - 500px
n°1520516
nraynaud
lol
Posté le 26-02-2007 à 20:00:06  profilanswer
 

c'est le bordel.


---------------
trainoo.com, c'est fini
n°1520537
Jubijub
Parce que je le VD bien
Posté le 26-02-2007 à 20:42:36  profilanswer
 

bon ca marche, mais j'ai une autre couille...je voudrais que chaque entrée soit une ligne nouvelle...si j'ajoute le texte ca marche, mais si je rajoute un "\n", ca déconne, je me prend une bad location exception...
 
lol...pour une raison que j'ai pas trop le temps de chercher :  
 
getText().length renvoit un offset pourri si ton texte se termine par un linefeed...
 
alors que document.getLength() renvoit un offset correct...


Message édité par Jubijub le 26-02-2007 à 20:45:52

---------------
Jubi Photos : Flickr - 500px
n°1520543
nraynaud
lol
Posté le 26-02-2007 à 20:54:36  profilanswer
 

y'a une grosse feinte à la con sur la fin du Document je crois, va voir la javadoc. Mais ça lève un drapeau rouge dans ma mémoire.


---------------
trainoo.com, c'est fini
n°1520549
Jubijub
Parce que je le VD bien
Posté le 26-02-2007 à 21:08:36  profilanswer
 

laquelle ? entre le container, le modèle et les sous composants du modèle, sachant que pour chaque y'a l'interface, 1-2 classes abstraites et l'implémentation, c'est pas ce qu'il y a de plus limpide :o


---------------
Jubi Photos : Flickr - 500px
n°1520554
nraynaud
lol
Posté le 26-02-2007 à 21:12:42  profilanswer
 

http://java.sun.com/j2se/1.4.2/doc [...] Position()
 
yes, voilà, quand on prend une position dans le document, elle peut bouger toute seule si on insère ou supprime du texte avant, il faut donc faire gaffe à pas conserver des références invalides. Et appeller getEndPosition pour faire son insertion à la fin du document.


---------------
trainoo.com, c'est fini
n°1520803
Jubijub
Parce que je le VD bien
Posté le 27-02-2007 à 11:33:08  profilanswer
 

ok...donc c'est encore une 3ème méthode...pas très orthogonal tout ça, mais bon...
 
je vais prendre ça du coup :)
 
hannn, ca déconne...
 
getDocument().getEndPosition().getOffset() retourne 1 sur un document vide, et ça plante...
 
sans que je comprenne pkoi, il faut mettre -1 à la valeur de l'offset et ça marche...


Message édité par Jubijub le 27-02-2007 à 11:39:02

---------------
Jubi Photos : Flickr - 500px

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  [Java] JEditorPane et couleur du texte

 

Sujets relatifs
[Java] I/O, zip, et botanique[POO] Champ de texte et MVC (modèle vue contrôleur)
[Java] Tomcat LogConfigurationException help!verifier fichier (extension, type mime...) depuis un applet java
[JAVA] gestion droits utilisateurs[Win32] Changer la couleur d'une toolbar
signer une applet java (jarsigner...)[JAVA] mpossible de lancer le service Tomcat 5.5 sur Win2003
Table sans primary key avec Hibernate/JAVARécuperation de texte dans une variable
Plus de sujets relatifs à : [Java] JEditorPane et couleur du texte


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR