Erreur suppression de JPanel

TheRedXPeace Messages postés 19 Statut Membre -  
lulu16100 Messages postés 109 Statut Membre -
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.

A voir également:

3 réponses

TheRedXPeace Messages postés 19 Statut Membre
 
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 19 Statut Membre
 
Si vous me demandez d'utiliser des repaint() cela ne sert à rien. Ça ne fonctionne toujours pas !
0
lulu16100 Messages postés 109 Statut Membre 61
 
Bonjour,

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