• Miércoles 1 de Mayo de 2024, 02:25

Autor Tema:  Centrar los componentes de un JFrame  (Leído 12494 veces)

crixxus

  • Nuevo Miembro
  • *
  • Mensajes: 19
  • Nacionalidad: co
    • Ver Perfil
Centrar los componentes de un JFrame
« en: Miércoles 21 de Diciembre de 2011, 21:50 »
0
Hola amigos, me gustaría saber como se puede poner los componentes de un JFrame en el centro de la ventana y que permanezcan siempre en el centro. De antemano le agradezco la ayuda :exclamation:
« última modificación: Miércoles 21 de Diciembre de 2011, 22:30 por crixxus »

jorts

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re:Centrar los componentes de un JFrame
« Respuesta #1 en: Jueves 22 de Diciembre de 2011, 19:56 »
0
Todo radica en el layout que utilices y como este distribuye los componentes Tendrias que hechar un vistazo a los layouts disponibles en Java.Una vez que tengas claro el que vas a utilizar una vez situes el componente o arrastrandolo con la paleta o añadiendolo al layout en la posición deseada ya esta listo.
Puedes emplear un layout null y decirle directamente a los componentes las coordenadas donde se van a situar:

contenedor.setLayout(null); 
contenedor.add (JLabel);
boton.setBounds (10,10,40,20);//Posicionamos el componente

Dependiendo de la interfaz de tu aplicación este layout tiene una posicion explícita de CENTER
contenedor.setLayout (new BorderLayout());
contenedor.add (componenteCentral, BorderLayout.CENTER);
contenedor.add (componenteSuperior, BordeLayout.NORTH);
contenedor.add (componenteAbajo, BorderLayout.SOUTH);
contenedor.add (componenteIzquierdo, BorderLayout.WEST);
contenedor.add (componenteDerecha, BorderLayout.EAST);
Tambien podrías utilizar otros grupos más complejos pero más potentes, y utilizar grupos de layouts:
javax.swing.GroupLayout jPanelSetLayout = new javax.swing.GroupLayout(jPanelSet);
        jPanelSet.setLayout(jPanelSetLayout);
        jPanelSetLayout.setHorizontalGroup(
            jPanelSetLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanelSetLayout.createSequentialGroup()
                .addGap(201, 201, 201)
                .addComponent(jButtonPrimero)
                .addGap(18, 18, 18)
                .addComponent(jButtonPrevio)
                .addGap(18, 18, 18)
                .addComponent(jButtonNext, javax.swing.GroupLayout.PREFERRED_SIZE, 97, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(18, 18, 18)
                .addComponent(jButtonLast, javax.swing.GroupLayout.PREFERRED_SIZE, 89, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(217, Short.MAX_VALUE))
        );
Saludos.
PD:Los componentes una vez ubicados a no ser que se programe, no se mueven!
« última modificación: Jueves 22 de Diciembre de 2011, 20:01 por jorts »