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 :

Charger un canvas dans un panel de ma fenetre


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de zarohn
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    148
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 148
    Par défaut Charger un canvas dans un panel de ma fenetre
    Bonjour, tout d'abord merci de me lire.

    Je débute avec les interfaces graphiques et je rencontre actuellement un souci

    J'ai une fenêtre construite avec netBeans qui contient des options de paramétrage en haut, un panel au milieu et un textbox pour des résultats en bas. Ça ressemble à ça (ce qui est en bleu est le panel, il se nomme pnDessin) :



    J'ai également une classe Canvas qui hérite d'un panel et qui dessine sur lui avec la méthode paint des objets géométriques grâce à la libraire java.awt.Graphics. Ça ressemble à ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    import java.awt.*;
     
    public class Canvas extends Panel {
     
        public void paint(Graphics g) {
            g.setColor(Color.BLACK);
            g.drawOval(200, 200, 100, 100);
            etc....
        }
     
    }
    Ce que je voudrais c'est charger le canvas avec mes dessins dans le panel de ma fenêtre lors du clic sur le bouton (ou alors remplacer le panel par mon canvas)... Je ne sais pas trop comment faire. J'ai essayé de faire ça dans le actionPerformed de mon bouton :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Canvas can = new Canvas();
    pnDessin.add(can);
    pack();
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Canvas can = new Canvas();
    pnDessin = can;
    pack();
    Mais rien ne s'affiche. Donc si quelqu'un était capable de m'aider ce serait très sympa.

    J'ajoute que la classe Canvas n'est pas en cause puisque si je met ceci comme code dans mon actionperformed, ça s'affiche bien mais dans une nouvelle frame :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Canvas can = new Canvas();
    can.setPreferredSize(new Dimension(800,600));
    Frame frame = new Frame();
    frame.add(can);
    frame.pack();
    frame.setVisible(true);
    (ps: tout est en AWT, rien en SWING)

    Merci d'avance

  2. #2
    Membre émérite Avatar de fraco
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    750
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2006
    Messages : 750
    Par défaut
    Ce que je voudrais c'est charger le canvas avec mes dessins dans le panel de ma fenêtre lors du clic sur le bouton

    Peut-être plutôt poser un panel dans netbeans, qui contient ton Canvas, au démarrage setVisible(false), au clic setVisible(true).... ?

  3. #3
    Membre confirmé Avatar de zarohn
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    148
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 148
    Par défaut
    En fait a chaque clic sur le bouton je vais devoir instancier un nouveau canvas, car il doit être redessiné. Je dois donc charger par code mon nouveau canvas dans le panel à chaque clic. Comment puis je faire ?

    Merci

  4. #4
    Membre confirmé Avatar de zarohn
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    148
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 148
    Par défaut
    Résolu. En fait la solution était d'afficher mon Canvas dans le panel en faisant clic droit sur le panel > "customize code" et remplacer

    pnDessin = new java.awt.Panel();
    par

    pnDessin = new Canvas();
    De rendre invisible le panel au démarrage. Puis lors du clic sur le bouton on le rend visible avant d'appeler la methode repaint() du canvas qui redessinera.


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

Discussions similaires

  1. Charger une Image dans un Panel
    Par Hlama dans le forum Débuter
    Réponses: 1
    Dernier message: 08/01/2014, 21h30
  2. charger un document dans un panel
    Par salihovic dans le forum Windows Forms
    Réponses: 4
    Dernier message: 23/11/2007, 09h53
  3. charger un fichier html dans un panel ?
    Par gregcat dans le forum ASP.NET
    Réponses: 7
    Dernier message: 19/11/2007, 10h49
  4. charger document office dans panel
    Par salihovic dans le forum Windows Forms
    Réponses: 5
    Dernier message: 20/10/2007, 11h02
  5. charger une image dans un panel en dynamique?
    Par Mickey.jet dans le forum Windows Forms
    Réponses: 1
    Dernier message: 14/07/2007, 05h03

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