2011-06-12 21 views
11

Quiero agregar dos jPanels a un JFrame uno al lado del otro. los dos cuadros son jpanels y el cuadro externo es un jframe enter image description hereagregando múltiples jPanels a jFrame

Tengo estas líneas de código. Tengo una clase llamada seatinPanel que extiende JPanel y dentro de esta clase tengo un constructor y un método llamado utilityButtons que devuelve un objeto JPanel. Quiero que el JPutón de UtilityButtons esté en el lado derecho. el código que tengo aquí solo muestra el utillityButtons JPanel cuando se ejecuta.

public guiCreator() 
    { 
     setTitle("Passenger Seats"); 
     //setSize(500, 600); 
     setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

     Container contentPane = getContentPane(); 

     seatingPanel seatingPanel1 = new seatingPanel();//need to declare it here separately so we can add the utilityButtons 
     contentPane.add(seatingPanel1); //adding the seats 
     contentPane.add(seatingPanel1.utilityButtons());//adding the utility buttons 

     pack();//Causes this Window to be sized to fit the preferred size and layouts of its subcomponents 
     setVisible(true); 
    } 

Respuesta

26

El LayoutManager más flexible que recomendaría es BoxLayout.

Usted puede hacer lo siguiente:

JPanel container = new JPanel(); 
container.setLayout(new BoxLayout(container, BoxLayout.X_AXIS)); 

JPanel panel1 = new JPanel(); 
JPanel panel2 = new JPanel(); 

//panel1.set[Preferred/Maximum/Minimum]Size() 

container.add(panel1); 
container.add(panel2); 

continuación, agregue recipiente para oponerse a su componente de bastidor.

+0

cuando intento hacer eso, me da este error BoxLayout no se puede compartir – dave

+0

@dave: lo siento, mi culpa. Edité mi respuesta, inténtalo ahora. – Heisenbug

+0

gracias, está trabajando ahora – dave

5

Debe leer y conocer los administradores de disposición que Swing tiene para ofrecer. En su situación, será útil saber que un Panel de contenido de JFrame utiliza BorderLayout de forma predeterminada y puede agregar su centro más grande JPanel BorderLayout.CENTER y el otro JPanel BorderLayout.EAST. Más se puede encontrar aquí: Laying out Components in a Container

Editar 1
Andrew Thompson ya le ha mostrado un poco en los administradores de diseño en su código en el post anterior aquí: why are my buttons not showing up?. De nuevo, lea el tutorial para comprenderlos mejor.