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 :

Problème repaint JPanel


Sujet :

AWT/Swing Java

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Problème repaint JPanel
    Bonjour,
    j"ai un problème avec mon interface graphique en java.
    Je souhaite créer un Jlabel qui contiendrait une valeur par défaut. Cette valeur peur être modifiée grace à un bouton ouvrant une InputDialog. En affichant le résultat dans la console, j'arrive bien a changé la variable mais le panel ne se change pas. Pourtant j'effectue bien un repaint.

    Voici un apercu de mon code. Merci

    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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
     
    public class GUI extends JFrame{
     
      public static JPanel Info;
      public static JTextField boitePosition; // Zone de texte de la position
      public static JButton BouttonIRmin;
     
      public static int IRmin;
     
     
      // Listener du boutton
      public static class B1Listener implements ActionListener {
        public void actionPerformed(ActionEvent e)  {
          // ouverture de la fenetre de Dialogue
          System.out.println("avant je passe "+GUI.IRmin);
          int tailleIR=0;
          try {
            tailleIR=Integer.parseInt(JOptionPane.showInputDialog(null,"Taille IR min :","",JOptionPane.QUESTION_MESSAGE));
          }
          catch(java.lang.NumberFormatException ex) {
            Toolkit.getDefaultToolkit().beep();
            JOptionPane.showMessageDialog(null,"Veuillez entrer un nombre valide","Erreur de l'application",JOptionPane.ERROR_MESSAGE);
            System.exit(-1);
          } 
          GUI.IRmin=tailleIR; // changement de la variable
          System.out.println("apres je passe "+GUI.IRmin);
          GUI.Info.repaint(); // repaint
        }
      }
     
      // Classe panel
      public class JPanelInfo extends JPanel{
        public JPanelInfo(){
          JLabel l=new JLabel("IR min "+IRmin);
          l.setBounds(10,20,100,17);
          this.add(l);
        }
      }
     
      public GUI(){
        // Parametre de la frame
        this.setTitle("Detection des small RNA");
        this.setSize(600,400);
        this.setLocation(100,50);
        this.setLayout(null);
     
        // création de la frame
        this.Info = new JPanelInfo();
        this.Info.setBounds(0,0,80,100);
        this.getContentPane().add(Info);
     
        // Ajout du boutton
        this.BouttonIRmin = new JButton(" Modifier ");
        this.BouttonIRmin.setBounds(200,5,100,25);
        this.BouttonIRmin.addActionListener(new B1Listener());
        this.getContentPane().add(this.BouttonIRmin);
     
        /*
        JLabel l=new JLabel("IR min bis "+this.IRmin);
        l.setBounds(200,200,100,17);
        this.add(l);
        */
     
        this.setVisible(true);
      }
    }
    Configuration: Linux Fedora 5
    Jdk 1.5

  2. #2
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut


    Sinon nulle part dans ton actionPerformed tu ne fais un setText(String s) sur ton JLabel, il est donc normal que la valeur ne soit pas mis à jour (en je pense pas franchement que tu utilise de binding...)

  3. #3
    Membre expérimenté Avatar de BainE
    Inscrit en
    Mai 2004
    Messages
    1 327
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 1 327
    Points : 1 572
    Points
    1 572
    Par défaut
    faire un

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    setText( tailleRC );
    a ton label
    et


    [edit] Grillé, le message est sensiblement le meme

  4. #4
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    ok ca marche Merci beaucoup.
    Mais dans ce cas, je n'ai plus besoin de JPanel. A quoi servent-ils exactement?

  5. #5
    Membre habitué Avatar de BlackWood
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    167
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 167
    Points : 169
    Points
    169
    Par défaut
    A contenir tes composants !
    A ajouter une bordure aussi... Question de pratique et de propreté, en fait.
    Actuellement, ton panel ne sert à rien puisque tu utilises :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    frame.getContentPane().add(...);
    au lieu de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    JPanel panel = new JPanel();
    panel.add(...);
    frame.getContentPane().add(panel);
    Mieux vaut la 2nd solution, mais bon, ça dépend des codes et de ceux qui les font...

Discussions similaires

  1. problème avec JPanel
    Par conplm dans le forum Débuter
    Réponses: 8
    Dernier message: 26/08/2008, 01h44
  2. problème avec JPanel
    Par sky88 dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 04/08/2008, 15h04
  3. Problèmes performances JPanel rafraichissement images
    Par Mr.Cow dans le forum AWT/Swing
    Réponses: 5
    Dernier message: 23/05/2008, 19h14
  4. problème affichage JPanel dans un JPanel
    Par rburney dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 02/04/2008, 11h36
  5. [Form Builder] problème de JPanel et JTable
    Par syrius31 dans le forum NetBeans
    Réponses: 2
    Dernier message: 19/07/2007, 14h47

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