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

Graphisme Java Discussion :

Button qui s'efface si je passe une fenetre au dessus


Sujet :

Graphisme Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de _kal_
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2006
    Messages
    178
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2006
    Messages : 178
    Par défaut Button qui s'efface si je passe une fenetre au dessus
    Bonjour,

    J'ai écrit un démineur pour un projet universitaire. Cependant, j'ai un problem avec un de mes JPannel qui se vois "effacé" lors de l'apparition d'une autre fenetre sur mon démineur. Exemple :

    Fenetre normale


    Fenetre buggé


    Voici le code de la classe réalisant l'affichage :

    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
     
    package pobj.game.demineur.view;
     
    import java.awt.BorderLayout;
    import java.awt.Dimension;
    import java.awt.FlowLayout;
    import java.awt.Graphics;
     
    import javax.swing.Box;
    import javax.swing.ImageIcon;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
     
    /**
     * La fenêtre globale du Démineur
     * @author caroline chopinaud
     */
    public class DemineurMainWindow extends JFrame {
    	private DemineurView view;
    	private JPanel gamePanel;
     
    	public DemineurMainWindow (DemineurView view){
    		super("Démineur");
    		this.view = view;
    		makeGUI();
    		this.pack();
    		this.setVisible(true);
    	}
     
    	private void makeGUI(){
    		gamePanel = new JPanel();
    		JPanel up = new JPanel();
    		JLabel minesRestantes = new JLabel("10");
    		JLabel tempsEcoule = new JLabel("25");
    		JButton newButton = new JButton();
    		newButton.setIcon(new ImageIcon(DemineurView.class.getResource("/pobj/game/demineur/data/Cool.png")));
    		newButton.setPreferredSize(new Dimension(30,30));
    		newButton.setActionCommand("NEW");
     
    		gamePanel.setLayout(new BorderLayout());
    		gamePanel.add(view, BorderLayout.CENTER);
     
    		gamePanel.add(up, BorderLayout.NORTH);
     
    //		Box hbox = Box.createHorizontalBox();
    //		hbox.add(minesRestantes);
    //		hbox.add(Box.createHorizontalStrut(20));
    //		hbox.add(newButton);
    //		hbox.add(Box.createHorizontalStrut(20));
    //		hbox.add(tempsEcoule);
    //		up.add(hbox);
     
    		up.setLayout(new FlowLayout());
    		up.add(newButton);
     
    		// TODO: créer les menus
     
    		this.setContentPane(gamePanel);
    		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     
    	}
     
    	// TODO: créer un MenuController pour gérer les menus
     
    } // DemineurMainWindow
    Comme vous pouvez constater, j'ai mis en commentaire la méthode avec les Box, pour m'assurer que le problème ne venait pas de là. Mais ça fait pareil avec le JPAnnel tout simple et un seul boutton.

    Je pensais que les objets de type JPannel faisaient appel automatiquement à la méthode repaint() lorsqu'un événement système se produisait. D'ailleurs, mon panel CENTER qui contient la grille fonctionne parfaitement si je passe une autre fenetre dessus, il ne s'efface pas. Voici le code de celui-ci au cas ou :

    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
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
     
    package pobj.game.demineur.view;
     
     
    import java.awt.Dimension;
    import java.awt.GridLayout;
    import java.util.ArrayList;
     
    import javax.swing.JPanel;
     
    import pobj.game.demineur.model.DemineurModel;
    import pobj.game.demineur.model.ModelChangeEvent;
    import pobj.game.demineur.model.ModelChangeListener;
     
    /**
     * La vue du Démineur
     * @author caroline chopinaud
     */
    public class DemineurView extends JPanel implements ModelChangeListener  {
     
    	/** La hauteur d'une case */
    	public final static int HAUTEUR_CASE = 30;
     
    	/** La largeur d'une case */
    	public final static int LARGEUR_CASE = 30;
     
    	/** Le modèle du démineur */
    	private DemineurModel model;
     
    	/** Le tableau des vues des Cases */
    	private CaseView tableauCase[][];
     
    	/** La liste des écouteurs de notification de changement au niveau de la vue */
    	private ArrayList<ViewChangeListener> changeListeners;
     
    	/**
             * Création d'une vue du Démienur
             * @param model le modèlé du Démineur
             */
    	public DemineurView(DemineurModel model) {
            this.model = model;
     
            // TODO: ajouter la vue "this" comme écouteur du modèle pour les ModelChangeEvent
            model.addModelChangeListener(this);
     
            // TODO: construire la liste des écouteur de changement de vue
            changeListeners = new ArrayList<ViewChangeListener>();
     
            // création de la vue
            makeGUI();
        }
     
    	/**
             * Initialisation graphique de la vue du Démineur. Tout en vrac mais on pourra séparer comme dans le cours.   
             */	
    	private void makeGUI() {
    		setLayout(new GridLayout(model.getnbCol(), model.getnbRow()));
    		setPreferredSize (new Dimension(model.getnbCol()*LARGEUR_CASE, model.getnbRow()*HAUTEUR_CASE));
    		tableauCase = new CaseView[model.getnbCol()][model.getnbRow()];
    		CaseView maCase;
     
    		for (int i = 0; i < model.getnbCol(); i++) {
    			for (int j = 0; j < model.getnbRow(); j++) {
    				maCase = new CaseView(i, j, this, model.getCase(i, j));
    				add(maCase);
    				tableauCase[i][j] = maCase;
    			}
    		}
    	}
     
    	/**
             * Accesseur au modèle du jeu
             * @return le modèle du jeu
             */
    	public DemineurModel getModel(){
    		return model;
    	}
     
    	/**
             * Enregistre un écouteur de la vue
             * @param l l'écouteur du modèle à ajouter
             */
        public void addViewChangeListener(ViewChangeListener l) {
            changeListeners.add(l);
        }
     
        /**
         * Désenregistre un écouteur de la vue
         * @param l l'écouteur du modèle à supprimer
         */
        public void removeViewChangeListener(ViewChangeListener l) {
            changeListeners.remove(l);
        }
     
        /**
         * Notifie les écouteurs d'un changement dans la vue
         * @param event l'événement à envoyer
         */
        public void fireModelChange(ViewChangeEvent event) {
        	for(ViewChangeListener l : changeListeners){ 
                l.viewChanged(event);
        	}
        }
     
    	/**
             * Lors d'un changement dans le modèle. Ici on affiche si la partie a été gagnée ou perdue. Il faudrait
             * le faire via le smiley.
             * Réafiche à la case ayant généré cet événement. Réaffiche tout le jeu si la partie est perdue.
             */
    	public void modelChanged(ModelChangeEvent evt){
    		//System.out.println("je suis dans modelChanged");
    		if (evt.getStatut() == evt.GAGNE) {
    			System.out.println("bravo, vous avez gagné!");
    		}
    		else if (evt.getStatut() == evt.PERDU) {
    			System.out.println("vous avez perdu!");
    			for (int i = 0; i < tableauCase.length; i++) {
    				for (int j = 0; j < tableauCase[0].length; j++) {
    					tableauCase[i][j].drawCase();
    				}
    			}
    		}
    		else {
    			tableauCase[evt.getCol()][evt.getRow()].drawCase();
    		}
    	}
     
     
    }// DemineurVue
    J'espère avoir été assez clair

  2. #2
    Membre Expert
    Avatar de yotta
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Septembre 2006
    Messages
    1 095
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 095
    Par défaut Bonjour,
    Lorsque l'on travaille avec des Applet, l'usage de JPanels nécéssite après les avoir remplis d'invoquer leur méthode validate().
    Ce qui m'intrigue, c'est qu'à la lecture de votre code, il semblerait que vous ajoutiez le JPanel up dans votre gamePanel avant de l'avoir rempli. Je ne sais pas si cela a une réele importance, mais j'aurais personnellement d'abord remplis complètement up, puis fait un up.validate(), et ensuit j'ajouterai up à gamePanel, pour terminer par un gamePanel.validate()......

    Bon courrage.....
    Une technologie n'est récalcitrante que par ce qu'on ne la connait et/ou comprend pas, rarement par ce qu'elle est mal faite.
    Et pour cesser de subir une technologie récalcitrante, n'hésitez surtout pas à visiter les Guides/Faq du site !

    Voici une liste non exhaustive des tutoriels qui me sont le plus familiers :
    Tout sur Java, du débutant au pro : https://java.developpez.com/cours/
    Tout sur les réseaux : https://reseau.developpez.com/cours/
    Tout sur les systèmes d'exploitation : https://systeme.developpez.com/cours/
    Tout sur le matériel : https://hardware.developpez.com/cours/

  3. #3
    Membre confirmé Avatar de _kal_
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2006
    Messages
    178
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2006
    Messages : 178
    Par défaut
    Bonjour, cela ne change malheureusement rien.

    Voici mon nouveau code suite à vos remarques :

    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
     
    private void makeGUI(){
    		gamePanel = new JPanel();
    		up = new JPanel();
     
    		JLabel minesRestantes = new JLabel("10");
    		JLabel tempsEcoule = new JLabel("25");
    		JButton newButton = new JButton();
    		newButton.setIcon(new ImageIcon(DemineurView.class.getResource("/pobj/game/demineur/data/Cool.png")));
    		newButton.setPreferredSize(new Dimension(30,30));
    		newButton.setActionCommand("NEW");
     
    		Box hbox = Box.createHorizontalBox();
    		hbox.add(minesRestantes);
    		hbox.add(Box.createHorizontalStrut(20));
    		hbox.add(newButton);
    		hbox.add(Box.createHorizontalStrut(20));
    		hbox.add(tempsEcoule);
    		hbox.validate();
     
    		up.add(hbox);
    		up.validate();
    		gamePanel.setLayout(new BorderLayout());
    		gamePanel.add(up, BorderLayout.NORTH);
    		gamePanel.add(view, BorderLayout.CENTER);
    		gamePanel.validate();
    		// TODO: créer les menus
     
    		this.setContentPane(gamePanel);
    		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     
    	}

  4. #4
    Membre confirmé Avatar de _kal_
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2006
    Messages
    178
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2006
    Messages : 178
    Par défaut
    Je ne comprend vraiment pas d'ou vien le problème. J'ai créée un petit programme qui dessine le même type de fenetre et je n'ai pas de problème !

    Voici le code :

    MaFenetre.java :
    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
     
    package pobj.game.demineur;
     
    import java.awt.BorderLayout;
    import java.awt.Dimension;
    import java.awt.GridLayout;
     
    import javax.swing.Box;
    import javax.swing.ImageIcon;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
     
    import pobj.game.demineur.view.DemineurView;
     
    public class MaFenetre extends JFrame {
     
    	JPanel up;
    	JPanel view;
    	JPanel gamePanel;
    	public MaFenetre(String s) {
    		up = new JPanel();
    		view = new JPanel();
    		gamePanel = new JPanel();
    		this.setTitle(s);
    		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     
    		JLabel minesRestantes = new JLabel("10");
    		JLabel tempsEcoule = new JLabel("25");
    		JButton newButton = new JButton();
     
    		newButton.setIcon(new ImageIcon(DemineurView.class.getResource("/pobj/game/demineur/data/Cool.png")));
    		newButton.setPreferredSize(new Dimension(30,30));
    		newButton.setActionCommand("NEW");
     
    		Box hbox = Box.createHorizontalBox();
    		hbox.add(minesRestantes);
    		hbox.add(Box.createHorizontalStrut(20));
    		hbox.add(newButton);
    		hbox.add(Box.createHorizontalStrut(20));
    		hbox.add(tempsEcoule);
    		hbox.validate();
    		up.add(hbox);
     
    		view.setLayout(new GridLayout(10, 10));
    		view.setPreferredSize(new Dimension(300, 300));
    		for (int i = 0 ; i < 100 ; i++) {
    			JButton btn = new JButton();
    			btn.setIcon(new ImageIcon(DemineurView.class.getResource("/pobj/game/demineur/data/Cool.png")));
    			btn.setPreferredSize(new Dimension(30,30));
    			btn.setActionCommand("NEW");
    			view.add(btn);
    		}
     
    		gamePanel.setLayout(new BorderLayout());
    		gamePanel.add(up, BorderLayout.NORTH);
    		gamePanel.add(view, BorderLayout.CENTER);
     
    		this.getContentPane().add(gamePanel);
    	}
     
    }
    MaFenetreMain.java :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    package pobj.game.demineur;
     
    public class MaFenetreMain {
    	public static void main(String[] args) {
    		MaFenetre fen = new MaFenetre("test");
    		fen.pack();
    		fen.setVisible(true);
    	}
    }
    La fenetre là ne s'efface jamais ! Par conséquent, le problème pourrait venir du JPannel CENTER qui est de type DemineurView... Mais je vois pas le problème.

  5. #5
    Gfx
    Gfx est déconnecté
    Expert confirmé
    Avatar de Gfx
    Inscrit en
    Mai 2005
    Messages
    1 770
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 770
    Par défaut
    Ce type de problème apparaît avec Java <= 1.5 lorsque l'on "bloque" l'EDT par un traitement trop long. Regarde bien ton code pour voir si tu n'as pas de longues boucles qui devraient être executées par des threads. En effectuant de longues opérations dans l'EDT, tu empêches Swing de redessiner la fenêtre.

  6. #6
    Membre confirmé Avatar de _kal_
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2006
    Messages
    178
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2006
    Messages : 178
    Par défaut
    Je viens de résoudre le problème! Cela provenait du fait que j'appellait la méthode repaint() dans la méthode drawCase() de la classe CaseView dont voici le code :

    CaseView.java :

    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
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
     
     
    package pobj.game.demineur.view;
    import java.awt.Color;
    import java.awt.Graphics;
    import java.awt.event.InputEvent;
    import java.awt.event.MouseAdapter;
    import java.awt.event.MouseEvent;
    import java.awt.event.MouseListener;
     
    import javax.swing.BorderFactory;
    import javax.swing.Icon;
    import javax.swing.ImageIcon;
    import javax.swing.JButton;
     
    import pobj.game.demineur.model.Case;
    import pobj.game.demineur.data.*;
     
    /**
     * La répresentation graphique d'une case
     * @author caroline chopinaud
     */
    public class CaseView extends JButton {
     
    	/** La vue du démineur */
    	private DemineurView view;
     
    	/** Le modèle de la case représentée */
    	private Case caseModel;
     
    	/** La colonne où se situe la case */
    	private int col;
     
    	/** La ligne où se situe la case */
    	private int row;
     
    	/** */
    	private boolean solution = false;
     
    	/** le contrôleur associé à la vue */
    	private CaseController caseController;
     
    	// PARTIE STATIQUE (Attributs de classes pour les images)
     
    	/** Une image de drapeau */
    	private final static ImageIcon FLAG = new ImageIcon(CaseView.class.getResource("/pobj/game/demineur/data/drapeau.png"));
     
    	/** Une image de ? */
    	private final static ImageIcon QUESTION = new ImageIcon(CaseView.class.getResource("/pobj/game/demineur/data/question.png"));
     
    	/** Une image vide */
    	private final static ImageIcon VIDE = new ImageIcon(CaseView.class.getResource("/pobj/game/demineur/data/vide.png"));
     
    	/** Une image de mine */
    	private final static ImageIcon MINE = new ImageIcon(CaseView.class.getResource("/pobj/game/demineur/data/mine.png"));
     
    	/** Des images de chiffres */
    	private final static ImageIcon[] TABNUMERO = new ImageIcon[8];
     
    	/** bloc d'initialisation du tableau des images */
    	static {
    		for (int i = 0; i < TABNUMERO.length; i++){
    			TABNUMERO[i] = new ImageIcon(CaseView.class.getResource("/pobj/game/demineur/data/"+(i+1)+".png"));
    		}
    	}  	
     
    	/**
             * Création d'une representation d'une Case
             * @param col la colonne de la case
             * @param row la ligne de la case
             * @param view la vue du Démineur
             * @param caseModel le modèle de la case
             */
    	public CaseView(int col, int row, DemineurView view, Case caseModel){
    		this.view = view;
    		this.caseController = new CaseController();
    		this.col = col;
    		this.row = row;
    		this.caseModel = caseModel;
    		addMouseListener(new CaseController());
    	}
     
    	/**
             * Dessine une case suivant son état dans le modèle
             */
    	public void drawCase() {
    		if (caseModel.isRevealed()) {
    			this.setEnabled(false);
    			if (caseModel.existMine()) {
    				this.setIcon(MINE);
    			}
    			else {
    				if (caseModel.nbAdjacentMines() != 0) {
    					this.setIcon(TABNUMERO[caseModel.nbAdjacentMines() - 1]);
    				}
    				else {
    					this.setIcon(VIDE);
    				}
    			}
    		}
    		else {
    			if (caseModel.isMarked())
    				this.setIcon(FLAG);
    			else if (caseModel.isUndecided())
    				this.setIcon(QUESTION);
    			else
    				this.setIcon(VIDE);
    		}
    		//this.repaint(); GEL LE JPANEL DU HAUT !!
    	}
     
    	/**
             * Accesseur la ligne de la case
             * @return la ligne de la case
             */
    	public int getRow(){
    		return row;
    	}
     
    	/**
             * Accesseur à la colonne de la case
             * @return la colonne de la case
             */
    	public int getCol(){
    		return col;
    	}
     
    	@Override
    	public void paint(Graphics g){
    		super.paint(g);
    		drawCase();
    	}
     
    	private class CaseController implements MouseListener {
     
    		public CaseController() {}
     
    		public void mouseClicked(MouseEvent arg0) {
    			ViewChangeEvent ve;
     
    			/* si c'est un clique gauche */
    			if ((arg0.getModifiers() & InputEvent.BUTTON1_MASK) != 0) {
    				//System.out.println("je revele la case " + row + " " + col);
    				ve = new ViewChangeEvent(ViewChangeEvent.REVEALED, col+2, row+2);
    				view.fireModelChange(ve);
    			}
     
    			/* si c'est un clique droit */
    			else if ((arg0.getModifiers() & InputEvent.BUTTON3_MASK) != 0) {
    				//System.out.println("je marque la case " + row + " " + col);
    				ve = new ViewChangeEvent(ViewChangeEvent.MARKED, col+2, row+2);
    				view.fireModelChange(ve);
    			}
    		}
     
    		public void mouseEntered(MouseEvent arg0) {
    			// TODO Auto-generated method stub
     
    		}
     
    		public void mouseExited(MouseEvent arg0) {
    			// TODO Auto-generated method stub
     
    		}
     
    		public void mousePressed(MouseEvent arg0) {
    			// TODO Auto-generated method stub
     
    		}
     
    		public void mouseReleased(MouseEvent arg0) {
    			// TODO Auto-generated method stub
     
    		}
     
    	}
    } // CaseView
    Par ailleurs, je ne comprend pas pourquoi un repaint() venait perturber un autre JPanel :/

    Si quelqu'un peux me dire, j'en serais ravi

Discussions similaires

  1. Programme qui plante quand je passe une string.
    Par z980x dans le forum SL & STL
    Réponses: 4
    Dernier message: 23/01/2009, 00h40
  2. un objet qui s'efface d'une liste STL
    Par BruceBoc dans le forum SL & STL
    Réponses: 17
    Dernier message: 21/02/2007, 21h21
  3. champs qui s'efface lors d'une requete ajax.
    Par starr dans le forum Langage
    Réponses: 3
    Dernier message: 27/10/2006, 08h33
  4. Afficher une fenetre par dessus un affichage plein ecran
    Par Elendhil dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 16/10/2006, 22h52
  5. effacer du texte dans une fenetre
    Par exter666 dans le forum Windows
    Réponses: 5
    Dernier message: 08/03/2005, 11h25

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