Erreur suppression de JPanel

Fermé
TheRedXPeace Messages postés 14 Date d'inscription jeudi 23 juillet 2009 Statut Membre Dernière intervention 15 juillet 2010 - 5 juil. 2010 à 00:15
lulu16100 Messages postés 95 Date d'inscription mardi 3 décembre 2013 Statut Membre Dernière intervention 13 janvier 2019 - 15 déc. 2013 à 15:27
Bonjour,

J'ai un projet que je dois rendre d'ici peu. Cependant je suis bloqué sur la suppression de JPanel et le résultat n'a pas été concluant (en C# j'aurai pas eu ce problème). Du coup j'ai fait un test bidon pour essayer de résoudre mon problème.


3 réponses

TheRedXPeace Messages postés 14 Date d'inscription jeudi 23 juillet 2009 Statut Membre Dernière intervention 15 juillet 2010
5 juil. 2010 à 00:27
Bonjour,

J'ai un projet que je dois rendre d'ici peu. Cependant je suis bloqué sur la suppression de JPanel et le résultat n'a pas été concluant (en C# j'aurai pas eu ce problème). Du coup j'ai fait un test bidon pour essayer de résoudre mon problème.

En effet, ce test consiste à ajouter 2 JPanel (Rouge et Vert) dans une JFrame. Voici le code correspodant :
import java.awt.Color;
import java.awt.FlowLayout;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JLayeredPane;
import javax.swing.JPanel;


public class MyWindow extends JFrame {

	private JPanel panel1, panel2;
	private JLayeredPane layeredPane;
	
	public MyWindow()
	{
		super("test de m*****");
		setSize(500,500);
		
		getContentPane().setBackground(Color.BLACK);
		
		
		 /*
		layeredPane = new JLayeredPane();
		layeredPane.setOpaque(true);
		layeredPane.setBackground(Color.BLACK);
		*/
	
		// JPanel1
		this.panel1 = new JPanel();
		this.panel1.setBackground(Color.RED);
		
		// JPanel1
		this.panel2 = new JPanel();
		this.panel2.setBackground(Color.GREEN);
		
		
		getContentPane().add(this.panel1);
		getContentPane().add(this.panel2);
		
		//pack();
		setVisible(true);
	}

	public void setPanel1(JPanel panel1) {
		this.panel1 = panel1;
	}

	public JPanel getPanel1() {
		return panel1;
	}

	public void setPanel2(JPanel panel2) {
		this.panel2 = panel2;
	}

	public JPanel getPanel2() {
		return panel2;
	}
	
}



Et le fichier Test :
public class Launch {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		MyWindow w = new MyWindow();
		System.out.println(w.getContentPane().getComponentCount());
	}

}


Résultat :
Le JPanel affiché est bien le dernier (le vert) et le nombre de JPanel est bien 2. Donc jusqu'ici tout va bien.

Maintenant on passe à la suppression qui fait l'objet de ce test. Voici le code :
public class Launch {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		MyWindow w = new MyWindow();
                w.remove(w.getJPanel2());
		System.out.println(w.getContentPane().getComponentCount());
	}

}




Ici je supprime le dernier JPanel (Le vert) pour savoir je vais bien avoir le JPanel N°1 (le rouge) qui sera affiché.

Résultat :
Le nombre de JPanel est bien 1 cependant plus rien est affiché.

Je suis tout de même dessus depuis 6 heures. Quelle est selon vous la solution ? J'ai essayé d'utiliser les JLayeredPane et c'est encore pire. Rien est affiché.


Cordialement,

TheRedXPeace


Configuration: Windows 7 / Safari 533.4
0
TheRedXPeace Messages postés 14 Date d'inscription jeudi 23 juillet 2009 Statut Membre Dernière intervention 15 juillet 2010
5 juil. 2010 à 10:31
Si vous me demandez d'utiliser des repaint() cela ne sert à rien. Ça ne fonctionne toujours pas !
0
lulu16100 Messages postés 95 Date d'inscription mardi 3 décembre 2013 Statut Membre Dernière intervention 13 janvier 2019 61
Modifié par lulu16100 le 15/12/2013 à 15:28
Bonjour,

Je sais que votre publication est ancienne. Cependant j'ai quasiment le même problème... Avez vous trouvé une solution?
0