[Java] panel in panel

wolfy -  
 wolfy -
Bonjour,

j'essaye d'inclure un panel dans un autre mais le panel "parent" (panel1) recouvre complètement l'autre (panel). Voici mon code :

JFrame frame = new JFrame("OvalPaint");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel1 = new JPanel();
panel1.setLayout(new FlowLayout());
TreeMaker panel = new TreeMaker(5);
panel.setBounds(10, 10, 100, 100);
panel1.add(panel);
panel.setLayout(null);
JComboBox test = new JComboBox();
test.setBounds(10, 50, 30, 30);
panel.add(test);


frame.add(panel1);

frame.setSize(300, 200);
frame.setVisible(true);

quelqu'un aurait il une idée ?

merci d'avance à tous

A voir également:

2 réponses

KX Messages postés 19031 Statut Modérateur 3 020
 
Les layout sont incompatibles avec le positionnement absolu setBounds.
Tu devrais faire des setLayout(null);

import java.awt.Color;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JPanel;

class TreeMaker extends JPanel
{
	private static final long serialVersionUID = 1;

	public TreeMaker(int i)
	{
	}
}

public class Test
{
	public static void main(String...args)
	{
		JComboBox<Object> test = new JComboBox<Object>();
		test.setBounds(10, 50, 30, 30);
		
		TreeMaker panel = new TreeMaker(5);
		panel.setLayout(null);
		panel.add(test);
		panel.setBackground(Color.GREEN);
		panel.setBounds(10, 10, 100, 100);
	
		JPanel panel1 = new JPanel();
		panel1.setLayout(null);
		panel1.add(panel);
		panel1.setBackground(Color.RED);
	
		JFrame frame = new JFrame("OvalPaint");
		frame.setSize(300, 200);
		frame.add(panel1);
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.setVisible(true);
	}
}
2
wolfy
 
justement c'est tout là le problème, je cherche un layout qui accepte un panel sans layout. Car je doit intégré mon panel où j'ai une grande liberté de placement dans un autre panel.

Ca doit être possible mais comment :s
0
KX Messages postés 19031 Statut Modérateur 3 020
 
"une grande liberté de placement" alors avec un layout null comme je l'ai fait et des setBounds
"un layout qui accepte un panel sans layout" peu importe le layout du conteneur, par exemple ici j'ai laissé le layout par défaut pour la JFrame (donc un BorderLayout) ce qui n'empeche pas d'avoir un panel avec le layout null...
0
wolfy
 
je vais testé merci à toi
0