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

AWT/Swing Java Discussion :

ajout d'un Graphics dans un jScrollPane dynamiquement


Sujet :

AWT/Swing Java

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    68
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2006
    Messages : 68
    Par défaut ajout d'un Graphics dans un jScrollPane dynamiquement
    Bonsoir,
    j'aimerai ajouter dynamiquement (lors d'un clic sur un jButton) un cercle(par exemple) dans mon jScrollPane.
    le tout dans une jFrame.
    Je n'arrive pas a creer meme dynamiquement mon cercle, seulement a la construction de la fenetre dans la méthode paint().
    Parce que j'obtient des erreurs quand j'instancie tout object Graphics.

    merci de votre aide

    RoC€L

  2. #2
    Membre chevronné Avatar de ngpub
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    449
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 449
    Par défaut
    dans mon jScrollPane
    Dans un JPanel qui est dans un JScrollPane ?

    Je n'arrive pas a creer meme dynamiquement mon cercle, seulement a la construction de la fenetre dans la méthode paint().
    Tu n'arrive pas à créer dynamiquement un cercle, cela fonctionne uniquement si le dessin du cercle est déjà présent dans la méthode paint(Graphics) avant la création de la fenêtre.

    Après avoir ajouté dynamiquement un cercle, utilises-tu la méthode repaint() ?

    j'obtient des erreurs quand j'instancie tout object Graphics
    Tu n'as pas à instancier un nouvel objet Graphics, utilise celui fournit par la méthode que tu surcharge ( paint(Graphics) ou mieux paintComponent(Graphics) ).

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    68
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2006
    Messages : 68
    Par défaut
    merci beaucoup de votre réponse.
    cependant la fonction repaint() n'a pas l'air d'exister.

    de plus comment fait-on pour add dans un jScrollPane (qui est dans un jPanel) un object Graphics, parce que cette objet ne prend en paramètre que un component. Il y a t il moyen de transtyper ces Graphics en Component? ou quelque soit autre?

  4. #4
    Membre chevronné Avatar de ngpub
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    449
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 449
    Par défaut
    cependant la fonction repaint() n'a pas l'air d'exister.
    Regardez bien, elle existe sur tous les composants graphiques.

    comment fait-on pour add dans un jScrollPane (qui est dans un jPanel) un object Graphics
    Pourquoi utilisez-vous un jScrollPane pour dessiner ?
    Un jScrollPane ne sert pas à ça, il sert à ajouter des scrolls au composant qu'il contient.
    Pour dessiné, utilisez plutôt un JPanel, surchargez la méthode paintComponent(Graphics), et utilisez le graphics fournit en argument pour dessiner.

    Il existe une doc ici qui montre comment utiliser un objet Graphics.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    68
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2006
    Messages : 68
    Par défaut
    hello,

    je pensais utiliser la fonction repaint() lors du clic sur le bouton.
    mais non. Par contre, je ne saisie toujours pas comment créer dynamiquement dois-je appeler la fonction repaint() dans ma fonction clic de mon button?

    et ma mon jScrollPane est dans un jPanel, parce que j'ajoute une multitude de dessins Graphics dans ce jPanel et donc quand il y en a trop de dessins, les scrollbars apparaissent. Mais le probleme est le meme pour l'ajout de mon dessin dans le jPanel, parce que la fonction "add()" ne prend en paramètre des component, sinon je peux peut être l'ajouter en "absolue" sur la fenetre mais il ne profitera pas des scrollbars ...
    enfin bref je suis toujours au meme point

  6. #6
    Membre chevronné Avatar de ngpub
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    449
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 449
    Par défaut
    Voici une idée de structure avec un JPanel :
    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
    public class PanelDessin extends JPanel {
     
    	private List<Cercle> cerclesADessiner;
     
     
    	...
     
    	public void addCercle(...) { ... }
     
    	protected void paintComponent(Graphics g) {
    		super.paintComponent(g);
     
    		for(Cercle cercle : cerclesADessiner) {
    			// dessin de chaque cercle
    		}
    	}
    }
    Et dans l'objet qui contient le panel de dessin et le bouton de création des cercles, il pourrait y avoir quelque chose comme ça :
    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
    private PanelDessin panelDessin;
     
    ...
     
    private void initComposants() {
     
    	panelDessin = new PanelDessin();
     
    	JButton button = new JButton("Ajouter un cercle");
    	button.addActionListener(new ActionListener() {
    		public void ActionPerformed(ActionEvent event) {
    			panelDessin.addCercle(...);
    			panelDessin.repaint();
    		}
    	});
    }

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    68
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2006
    Messages : 68
    Par défaut
    Merci beaucoup de votre aide , je vais de ce pas tester cela

Discussions similaires

  1. Ajouter un composant dans un JScrollPane
    Par Goltia dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 06/08/2007, 21h07
  2. ajouter des lignes dans un tableau dynamique
    Par yviii dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 20/06/2007, 12h15
  3. ajouter des lignes dans un tableau dynamique
    Par yviii dans le forum Windows
    Réponses: 1
    Dernier message: 20/06/2007, 11h28
  4. Réponses: 4
    Dernier message: 02/03/2007, 11h16
  5. Problème Graphics dans JScrollPane
    Par boudreau_benjamin dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 15/10/2006, 20h55

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