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 :

[Java 2D]Dessiner une chaîne dans une zone rectan...


Sujet :

2D Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 34
    Points : 32
    Points
    32
    Par défaut [Résolu][Java 2D]Dessiner une chaîne dans une zone rectan...
    Bonjour, Je suis confronté à un problème en Java2D, et je cherche des joyeux développeurs pour me donner un petit coup de main!

    Je cherche à pouvoir dessiner une chaîne de caractères dans une surface rectangulaire, afin que si elle dépasse la largeur de cette zone, Java2D passe à la ligne automatiquement. Malheureusement, je ne trouve pas comment faire.

    Le but est de pouvoir dessiner les "conditions générales de ventes" sur une facture, en dessous de celle ci. Vu que ce texte est relativement long, il va forcément dépasser la largeur de ma page.

    Je cherche donc une solution à ce problème. Merci d'avance, et à très bientôt j'espère !

    Jérôme

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    390
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 390
    Points : 432
    Points
    432
    Par défaut
    Pqoi ne pas utiliser un composant qui le fait directement.
    Un JTextArea par exemple gere les retour automatique à la ligne.
    Et si tu est obligé de passer par Java2D, et bien tu instancie ton JTextArea et tu l'initialise comme tu veux qu'il soit et ensuite tu le paint ou tu veux avec Java2D.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 34
    Points : 32
    Points
    32
    Par défaut
    Très bien vu, si simple que je n'y avait même pas pensé ! Merci beaucoup pour ton aide !

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 34
    Points : 32
    Points
    32
    Par défaut
    Argh ! j'ai un problème, c'est que quand je crée mon JTextArea, tout va bien.
    Le seul problème c'est quand je le paint sur mon panel, il va se mettre en haut à gauche de mon panel. En effet je travaille avec un nullLayout pour pouvoir placer exactement ce que je veux sur ma page de facturation.

    Le problème c'est que je ne peux pas spécifier la valeur X ou Y de l'endroit où le JTextArea doit être paint vu que la méthode paint() n'accèpte qu'un paramètre Graphics.

    Si je fais un setBounds() pour placer l'élément, il ne s'affiche pas à l'impression. Pourtant, sur le panel affiché avant l'impression, il est bel et bien présent ! Quelqu'un a t'il l'astuce pour me sortir de là ?

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    390
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 390
    Points : 432
    Points
    432
    Par défaut
    Voila comment tu peux faire pour placer ton JTextArea ou tu veux :
    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
    import javax.swing.*;
     
    public class Test3 extends JPanel {
    	JTextArea jt;
     
    	public Test3() {
    		super(null);
    		setSize(200,200);
     
    		jt = new JTextArea(10,10);
    		jt.setLocation(20,100);
    		jt.setSize(getSize());
    		jt.setText("");
    		jt.setLineWrap(true);
    		add(jt);
    	}
     
    	public static void main (String arg[]) {
    		Test3 t = new Test3();
    		JFrame frame = new JFrame();
    		frame.setContentPane(t);
    		frame.setSize(200,200);
    		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		frame.setVisible(true);
    	}
    }

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 34
    Points : 32
    Points
    32
    Par défaut
    Oui c'est bien comme cela que je procédais barbu, malheureusement, ca n'imprimait pas le JTextArea . J'ai du ruser en créant le JTextArea, et ensuite sans l'ajouter au panel, j'ai fait ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    JTextArea textArea = new JTextArea();
    g.translante(xVoulu,yVoulu);
    textArea.paint(g);
    et là miraculeusement ca passe! Mystère mystère... et prise de tête ! Encore merci Barbu !

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

Discussions similaires

  1. [POO] dans une classe, appeler une fonction dans une méthode
    Par arnaudperfect dans le forum Langage
    Réponses: 3
    Dernier message: 26/08/2007, 23h04
  2. Envoyer une formulaire dans une page dans une Frame
    Par zooffy dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 29/06/2007, 10h13
  3. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48
  4. Trouver la position d'une chaîne dans une chaîne
    Par taka10 dans le forum Langage
    Réponses: 1
    Dernier message: 03/01/2007, 23h18
  5. Réponses: 4
    Dernier message: 11/08/2006, 13h47

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