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

Interfaces Graphiques en Java Discussion :

JTextPane : texte et composants


Sujet :

Interfaces Graphiques en Java

  1. #1
    Candidat au Club
    Homme Profil pro
    Collégien
    Inscrit en
    Janvier 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Janvier 2014
    Messages : 6
    Points : 3
    Points
    3
    Par défaut JTextPane : texte et composants
    Bonjour,

    je travaille sur un projet Java de mathématiques, c'est pourquoi j'ai voulu utiliser le JTextPane en HTMLEditorKit. J'ai voulu utiliser les balises <math>, j'ai donc utilisé le JMathComponent de JEuclid. Mais lorsque je veux ajouter le composant via la méthode
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public void insertComponent(Component c)
    de la classe JTextEdit, il me garde mon texte mais sans le component. En gros, voilà mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    textPane.setText("<HTML><head></head><body>Du texte...</body></HTML>");
    JMathComponent m = new JMathComponent();
    m.setContent("<math><mfrac><mi>2</mi><mi>4</mi></mfrac></math>");
    textPane.insertComponent(m);
    textPane.revalidate();
    Ce code devrait donner :

    Du texte...

    Au fait, à quoi sert la méthode :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public void revalidate()
    J'attends vos réponses au plus vite ...

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Le JTextPane n'est pas fait pour y ajouter d'autres composants. Met ton JMathComponent dans un JPanel directement.

  3. #3
    Candidat au Club
    Homme Profil pro
    Collégien
    Inscrit en
    Janvier 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Janvier 2014
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Merci, je vais essayer.

    Mais je voudrais en fait que ma formule soit comptée comme un caractère, comme fait LaTeX avec <img src="http://latex.codecogs.com/gif.latex?/** formule */" />. J'utilisais ce système avant, mais le problème était que les ° n'apparaissaient pas avec par exemple \sin{30°}, je devais le remplacer avec \\char23 (2 slashs en String).
    Mon second problème était les angles : en faisant \\widehat{ABC} () par exemple, ça fonctionnait, mais quand je mettais \\widehat{VSB'}, ça me mettais exactement . Mon dernier problème avec LaTeX est les indices : impossible de mettre un nombre ou un mot en indice dans une fraction ! Je voulais faire \\frac{R_{Terre}}{3}, mais ça me donne aussi ! Toutes ces raisons m'ont fait choisir JEuclid.


    Comment puis-je procéder ?

  4. #4
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    Tu peux essayer d'utiliser JLatexMath, en l'utilisant pour générer l'image de la formule. Ensuite, tu peux soit créer ton propre EditorKit en surchargeant le ViewFactory, ou peut être créer ton URLStreamHandlerFactory gérer une url custom.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  5. #5
    Candidat au Club
    Homme Profil pro
    Collégien
    Inscrit en
    Janvier 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Janvier 2014
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Merci, je vais essayer.

  6. #6
    Candidat au Club
    Homme Profil pro
    Collégien
    Inscrit en
    Janvier 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Janvier 2014
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Merci ! Ça fonctionne, et même mieux que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <img src="http://latext.codecogs.com/gix.latex?" />
    !

  7. #7
    Candidat au Club
    Homme Profil pro
    Collégien
    Inscrit en
    Janvier 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Janvier 2014
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Je passe en Résolu. Merci à vous deux !

  8. #8
    Candidat au Club
    Homme Profil pro
    Collégien
    Inscrit en
    Janvier 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Janvier 2014
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Au fait, pour ceux qui ont le même problème que moi :

    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
     
    String tempDir;
    File tempDirFile;
     
    try
    {
    	tempDirFile = new File(System.getProperty("java.io.tmpdir") + "/dm/");
    	tempDirFile.mkdir();
    	tempDir = tempDirFile.getAbsolutePath() + "\\";
    }
    catch (Exception e)
    {
    	e.printStackTrace();
    }
     
    JTextPane textPane = new JTextPane();
    textPane.setContent("text/html");
    TeXFormula formula = new TeXFormula("\\frac{3}{4}");
    String fileName = tempDir + String.valueOf(Maths.random()) + ".png";
    formula.createPNG(TeXConstants.STYLE_DISPLAY, 20, fileName, Color.white, Color.black);
    textPane.setText("Voici la formule trois quart :<br /><img src=\"file:///" + fileName + "\" />");
    Exemple ici :

    Voici la formule trois quart :

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 03/02/2015, 15h58
  2. [Swing] Centré un texte dans un JTextPane
    Par titi_22 dans le forum AWT/Swing
    Réponses: 7
    Dernier message: 24/06/2011, 16h09
  3. Changer dynamiquement le text de composant ?
    Par Djobird dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 24/01/2008, 14h32
  4. [Composant] Editeur de texte
    Par fendavid dans le forum Général Java
    Réponses: 1
    Dernier message: 05/06/2004, 23h28
  5. [Débutant] SWT: composant Texte avec \n
    Par bonnefr dans le forum SWT/JFace
    Réponses: 3
    Dernier message: 18/05/2004, 11h44

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