Repaint et resize

Résolu
eplanet Messages postés 112 Date d'inscription dimanche 6 juin 2004 Statut Membre Dernière intervention 19 septembre 2007 - 2 juil. 2007 à 11:05
eplanet Messages postés 112 Date d'inscription dimanche 6 juin 2004 Statut Membre Dernière intervention 19 septembre 2007 - 2 juil. 2007 à 16:11
    Bonjour à tous, je viens à vous car j'ai un problème concernant le rafraichissement de mon IHM. Je modifie certains JPanel de ma fenêtre en changeant leurs dimensions. L'affichage est alors tout moche car il faut rafraichir la fenetre pour que les éléments se réorganisent. Lorsque je redimensionne la fenetre manuellement, cela provoque une actualisation de la fenetre et les éléments se dessinent correctement.

Je voudrais donc automatiser cela dès qu'un JPanel est modifié, donc dans chaque JPanel, il y a une référence vers la fenetre et je fais fenetre.repaint() pour forcer le rafraichissement de la fenetre à chaque modification, mais cela ne fonctionne pas... J'ai vérifié, la méthode repaint() de ma fenêtre est bien appelée mais cela ne suffit pas. Donc apparemment, le redimensionnement de la fenetre fait plus qu'appeler la méthode repaint() de la fenêtre, mais quoi ?

Merci à tous.

Vince

3 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 131
2 juil. 2007 à 12:08
essaye plutôt UpdateUI();
3
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
2 juil. 2007 à 12:35
Salut,

sinon pour la notification des actions sur ton panel tu peux utiliser ComponentListener

exemple :

import java.awt.event.ComponentEvent;
import java.awt.event.ComponentListener;

import javax.swing.JFrame;
import javax.swing.JPanel;

public class TestComponentListener extends JPanel implements ComponentListener {
    private static final long    serialVersionUID    = 2273564710297193340L;

    public TestComponentListener() {
        addComponentListener(this);
    }

    public void componentHidden(ComponentEvent e) {
        System.out.println("componentHidden");
    }

    public void componentMoved(ComponentEvent e) {
        System.out.println("componentMoved");
    }

    public void componentResized(ComponentEvent e) {
        System.out.println("componentResized");
    }

    public void componentShown(ComponentEvent e) {
        System.out.println("componentShown");
    }
   
    public static void main(String[] args) {
        JFrame frame = new JFrame("Test ComponentListener");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(300, 300);
        frame.setLocationRelativeTo(null);
        frame.setContentPane(new TestComponentListener());
        frame.setVisible(true);
    }
}

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

OoWORAoO
3
eplanet Messages postés 112 Date d'inscription dimanche 6 juin 2004 Statut Membre Dernière intervention 19 septembre 2007
2 juil. 2007 à 16:11
Merci à vous deux, je vais essayer ces méthodes.

Vince
0
Rejoignez-nous