2012-07-26 14 views
5

Al agregar 2 botones para este diseño, solo se muestra 1. Estoy intentando probar un diseño que usa paneles con pestañas. Por alguna razón, cuando intento agregar varios botones a la región este, solo muestra 1 botón. Simplemente sucede que el botón que se muestra es el último agregado a la región este, el resto se ignora. Estoy pensando que tal vez están ocultos debajo del último botón.al agregar 2 botones al diseño este, solo 1 muestra

public void createPage1() 
    { 
     { 
      panel1 = new JPanel(); 
      panel1.setLayout(new BorderLayout()); 

      panel1.add(new JButton("North"), BorderLayout.EAST); 
      panel1.add(new JButton("South"), BorderLayout.EAST); 
      panel1.add(new JButton("East"), BorderLayout.EAST); 
      panel1.add(new JButton("West"), BorderLayout.EAST); 
      panel1.add(new JButton("Center"), BorderLayout.EAST); 
     } 
    } 
+0

se da cuenta de que está añadiendo todo a la derecha eSTE? –

+0

Consulte también el [ejemplo de diseño anidado] (http://stackoverflow.com/questions/5621338/how-to-add-jtable-in-jpanel/5630271#5630271) para ver una ilustración de cómo puede anidar diseños, lo que hará Necesito usar si quieres agregar varios botones en EAST – Robin

Respuesta

11

No sé, cómo quiere que su interfaz de usuario para que parezca, pero trate de esta manera:

public void createPage1() { 
    //This will be the main panel. 
    //We are going to put several buttons only in the "EAST" part of it. 

    panel1 = new JPanel(); 
    panel1.setLayout(new BorderLayout()); 

    //We create a sub-panel. Notice, that we don't use any layout-manager, 
    //Because we want it to use the default FlowLayout 
    JPanel subPanel = new JPanel(); 

    subPanel.add(new JButton("1")); 
    subPanel.add(new JButton("2")); 
    subPanel.add(new JButton("3")); 

    //Now we simply add it to your main panel. 
    panel1.add(subPanel, BorderLayout.EAST); 
} 
+0

¡Creo que veo lo que hiciste allí! Es lo que Recursed mencionó también. ¡Gracias! – jerhynsoen

6

BorderLayout solo permite un componente por sección. Si desea conservar BorderLayout, pero tiene 2 botones, le sugiero que coloque cada uno de esos botones en un JPanel y luego ponga ese JPanel en la ranura este.

Sin embargo, probablemente haya opciones de diseño mucho mejores para usted. También menciona pestañas, que ya hay JTabbedPane para.

Echa un vistazo a los diferentes LayoutManagers, e intenta averiguar cuál es el adecuado para ti.

4

1. La disposición defecto para JFrame es BorderLayout, y tiene este, oeste, norte, sur, y la zona Centro, de los cuales Center es el posicionamiento por defecto si no se menciona.

2. Ahora cada sección/área puede contener sólo un widget (componente oscilación es decir.).

3. Va a tener este hecho en forma mucho mejor mediante el uso deGroup Layout, que fue desarrollado por el equipo de NetBeans en 2005, el uso de Windows Builder Pro, ahora libre de Google.

4. Pero si todavía quiere ir con el BorderLayout, voy a sugerir que use JPanel en el content pane de los JFrame a añadir botones de la manera que desea ......

Cuestiones relacionadas