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 :

mise à jour composant graphique


Sujet :

AWT/Swing Java

  1. #1
    Membre éprouvé
    Inscrit en
    Avril 2006
    Messages
    853
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 853
    Points : 929
    Points
    929
    Par défaut mise à jour composant graphique
    salut

    sur un canvas, je dessine des formes géométrique qui contient du texte....

    ce texte est un objet qui possède quelques attributes...

    lorsque je clique sur la forme géométrique, une frame s'ouvre et je vois les attributs de l'objet

    comment faire en sorte que les changements apporté au attribut se réflète ensuite sur le canvas?

    merci

  2. #2
    Membre régulier
    Inscrit en
    Mai 2008
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 126
    Points : 91
    Points
    91
    Par défaut
    un simple petit repaint() ne marche pas ?

  3. #3
    Membre éprouvé
    Inscrit en
    Avril 2006
    Messages
    853
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 853
    Points : 929
    Points
    929
    Par défaut
    voici plus de détail sur le code


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    public class Entity {
     
        private String code;
        private String name;
    	...
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    public class EntityDrawable{
     
      private Entity entity;
     
      public EntityDrawable(Entity entity, Color color, Point pos, Dimension dim) {
      ...
      ...
      }
     
      public void draw(Graphics g) {
      ...
      }
    }
    sur le canvas, lorsque je clique sur un objet de type EntityDrawable, je fais

    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
     
    	JFrame test = new JFrame();
    	test.setLayout(new BorderLayout());
        test.setSize(800, 600);
        test.setVisible(true);
     
       EntityPanel entityPanel = new EntityPanel(((EntityDrawable) tmpDrawable).getEntity());
       entityPanel.setVisible(true);
       test.add(entityPanel, BorderLayout.CENTER);
       tmpDrawable = drawable;
     
       test.addWindowListener(new java.awt.event.WindowAdapter() {
     
    		public void windowClosing(WindowEvent winEvt) {
    			canvas.repaint();
    		}
       });

    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
     
    public class EntityPanel extends JPanel {
     
    	private JLabel lblName;
        private JTextField txtName;
     
        private JLabel lblCode;
        private JTextField txtCode;
     
    	private JButton ok;
        private JButton cancel;
     
    	private Entity entity;
     
        public EntityPanel(Entity entity) {
     
            lblName = new JLabel("Nom");
            txtName = new JTextField(entity.getName());
     
            lblCode = new JLabel("Code");
            txtCode = new JTextField(entity.getCode());
     
    		ok = new JButton("Ok");
            cancel = new JButton("Cancel");
     
            ok.addActionListener(this);
            cancel.addActionListener(this);
     
        }
     
    	@Override
        public void actionPerformed(ActionEvent e) {
     
            entity.setName( txtName.getText());
            this.setVisible(false);
        }
     
    }
    donc je clique sur entity drawable, un panel s'affiche... je fais quelques modification au propriété de l'entité...
    le tout se ferme et je voudrais que entityDrawable se mette à jour

    or en faisant un repaint, je pensais que le canvas au complet allait se mettre à jour... et non
    le mieux serait de mettre à jour que entity drawable..et non tout rafraichir le canvas je crois

    une idée?

    merci

  4. #4
    Membre éprouvé
    Inscrit en
    Avril 2006
    Messages
    853
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 853
    Points : 929
    Points
    929
    Par défaut
    ok dans ma classe EntityDrawable... il y avait un problème... maintenant ça fonctionne....

    après avoir regardé les listener et le patron observable... je me demande si l'application d'un des deux... pourraient être envisageable...

  5. #5
    Membre expert
    Avatar de natha
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 346
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 346
    Points : 3 083
    Points
    3 083
    Par défaut
    Le plus simple est d'utiliser des mécanismes de binding.
    J'utilise par exemple JGoodies Bindings : www.jgoodies.com
    Comment ça ? La réponse à ton problème n'est ni dans la faq, ni dans les tutos, ni dans sources ??? Etonnant...
    De la bonne manière de poser une question (et de répondre).
    Je ne fais pas de service par MP. Merci (...de lire les règles...).
    Ma page dvp.com

Discussions similaires

  1. [AC-2007] Mise à jour KB979440 - Graphique (graphs) défectueux
    Par Observateur dans le forum IHM
    Réponses: 6
    Dernier message: 14/08/2010, 11h04
  2. [XL-2007] Mise à jour de graphique (modification de plages de données)
    Par gabi75 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 29/06/2010, 15h41
  3. [XL-2003] Mise à jour du graphique Excel sous Powerpoint
    Par Savanis dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 08/04/2010, 09h56
  4. Création et Mise à jour de graphique
    Par babybell dans le forum Macros et VBA Excel
    Réponses: 17
    Dernier message: 22/06/2009, 14h29
  5. [XL-2003] Bloquer mise à jour du graphique
    Par Cryos dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 19/06/2009, 15h11

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