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

2D Java Discussion :

Creer d'un texte editable dans un Graphics2D


Sujet :

2D Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 2
    Par défaut Creer d'un texte editable dans un Graphics2D
    Bonjour,
    dans un logiciel graphique 2D vectoriel type whiteboard, je dois creer une zone de texte editable. J'utilise actuellement, dans le Graphics2D, un TextLayout, avec AttributedString pour gerer la font (une seule font pour tout le texte), et LineBreakMeasurer pour le passage de ligne automatique dans une zone de largeur donnee.
    Mais mon texte n'est pas editable --> Comment le rendre editable par l'utilisateur ?
    Ou faut-il construire le champ de texte en se basant sur un autre type d'objet que le TextLayout ?
    Merci de votre aide...
    marinp.

  2. #2
    Membre Expert Avatar de rtg57
    Homme Profil pro
    Autodidacte
    Inscrit en
    Mars 2006
    Messages
    1 343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Autodidacte
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 343
    Par défaut
    Bonjour,

    je développe un petit programe qui nécessite la même fonctionnalité dont vous avez besoin.
    Je n'ai pas encore la solution, mais je suis en train de regarder pour mettre par dessus ma zone graphique, un JTextField ou quelque chose de similaire.

    Cependant je suis embêté par le système de dessin JAVA:
    * si je dessine mon fond d'écran, le composant disparait
    * si je dessine le composant, il commence par mettre un gros rectangle sur ma zone graphique.

    Sinon, il reste la solution de "fabriquer" un système qui gère les entrées clavier, qui écrit le texte ou efface le texte... On ne va quand même par réinventer le traitement de texte !

    Je vous tient au courant si j'avance sur le sujet...

    @ bientôt

  3. #3
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 901
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 901
    Billets dans le blog
    54
    Par défaut
    Rien ne t'empeches de mettre un layout null sur ton canvas/composant de dessin et de placer manuellement ton composant de saisis avec un add() suivit d'un setBounds() et puis de le retirer (ou de le rendre invisible) une fois la saisie terminée. Si tu as correctement réécrit paintComponent() sans toucher à paint(), tout composant fils se dessinera par dessus le dessin quand paintChildren() est appelé.

    En plus vous n'avez même pas vraiment besoin de composant de saisie en fait, il suffit de faire clignoter une ligne à l'endroit où placer le texte et de capturer les lettres saisies avec un KeyListener.
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  4. #4
    Membre Expert
    Avatar de slim_java
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2008
    Messages
    2 272
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2008
    Messages : 2 272
    Par défaut
    Citation Envoyé par bouye Voir le message
    Rien ne t'empeches de mettre un layout null sur ton canvas/composant de dessin et de placer manuellement ton composant de saisis avec un add() suivit d'un setBounds() et puis de le retirer (ou de le rendre invisible) une fois la saisie terminée. Si tu as correctement réécrit paintComponent() sans toucher à paint(), tout composant fils se dessinera par dessus le dessin quand paintChildren() est appelé.

    En plus vous n'avez même pas vraiment besoin de composant de saisie en fait, il suffit de faire clignoter une ligne à l'endroit où placer le texte et de capturer les lettres saisies avec un KeyListener.
    j'ai déjà créé un logiciel de dessin qui permet d'insérer du texte et de l'éditer et j'ai fait comme a dit Bouye

  5. #5
    Membre Expert Avatar de rtg57
    Homme Profil pro
    Autodidacte
    Inscrit en
    Mars 2006
    Messages
    1 343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Autodidacte
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 343
    Par défaut
    Merci, je prends note...

    @ bientôt

  6. #6
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 2
    Par défaut
    Merci pour ces suggestions qui me semblent très pertinentes. J'avais essayé de placer une zone de saisie temporaire par dessus celle de mon graphique, mais je ne savais pas comment la positionner.
    Je découvre ici qu'on peut utiliser un Layout "null" et placer nos objets "a la main". Je trouve les détails sur http://java.sun.com/docs/books/tutor...yout/none.html donc parfait pour un JTextField ainsi placé, je vais essayer.

    Par contre concernant la maitrise de l'affichage, je ne maitrise pas du tout les methodes paintComponent() et paintChildren()... quelle différence avec le paint() que j'utilise actuellement pour ma zone graphique, quand sont-elles appelées, par qui ? Il existe aussi "repaint()"... ?
    Je crains de ne pas les utiliser correctement si je ne comprends pas leurs spécificités...
    (en quelques mots, après j'irai chercher dans des docs si j'ai besoin de plus de détails)
    Merci...

Discussions similaires

  1. Réponses: 15
    Dernier message: 25/06/2020, 20h21
  2. enregister le contenue de text edit dans un fichier text
    Par othmane09 dans le forum Interfaces Graphiques
    Réponses: 3
    Dernier message: 16/06/2014, 16h27
  3. Réponses: 1
    Dernier message: 25/09/2008, 13h12
  4. enregistrer le contenu d'un Edit dans un fichier texte
    Par tapouni dans le forum C++Builder
    Réponses: 3
    Dernier message: 16/05/2008, 23h02
  5. Enregistret le contenu d'un edit dans un fichier text
    Par prison_break dans le forum C++Builder
    Réponses: 19
    Dernier message: 02/01/2007, 13h55

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