[Programacion][Solucionado] Duda con JAVA

Tengo un problema, estoy intentando hacer una aplicacion con JAVA, pero el problema es que tengo un panel y dentro de este quiero incorporarle otro, pero no se como decir que me lo ponga en una posicion en concreto.

He intentado usar el metodo setLocation(...) y aun asi no me funciona, y no se si es por que lo uso en un sitio incorrecto o no se.

por cierto se hacerlo con el netbeans pero no me interesa hacerlo de esta forma, asi que no me contesteis usa el netbeans o cualquier otro IDE que te permita dibujar de forma sencilla la aplicacion.

Clase jugada:
public class Jugada extends JPanel{

    GroupLayout GL = null;

    public Jugada() {
        setBorder(javax.swing.BorderFactory.createTitledBorder("MiJugada"));
        setName("MiJugadaName");
        setLocation(100, 100);
        GL = new javax.swing.GroupLayout(this);
        this.setLayout(GL);
        System.out.println(this.getX());
        GL.setHorizontalGroup(
            GL.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 244, Short.MAX_VALUE)
        );
        GL.setVerticalGroup(
            GL.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 31, Short.MAX_VALUE)
        );
    }
}


Y la clase principal (pongo solo un metodo, los otros son irrelevantes)
public class MenuPrincipalView extends JPanel {
        [...]
        private void initCustomComponent(Component C) {
           javax.swing.GroupLayout layout = (GroupLayout) this.getLayout();
           layout.setHorizontalGroup(
              layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                 .addGroup(layout.createSequentialGroup()
                 .addContainerGap()
                 .addComponent(C, 100, 500, 1000)
                 .addContainerGap(313, Short.MAX_VALUE))
           );
           layout.setVerticalGroup(
              layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
              .addGroup(layout.createSequentialGroup()
              .addContainerGap()
              .addComponent(C, 100, 500, 1000)
              .addContainerGap(384, Short.MAX_VALUE))
          );
       }
[...]
}



Resultado:
Imagen

En fin, no se como solucionarlo.

Solucion
elchicosinhada escribió:Para seleccionar el tamaño lo mejor es setBounds, indicando primero las cordenadas (x e y) y después el ancho y el alto.

Sin embargo, un "problema" que tiene java es que los layouts tienen preferencia a las posiciones manuales. Si quieres ponerlo a mano, lo mejor es usar setLayout(null) en el contenedor.
Dicho de otro modo.
panelExterior.setLayout(null);
panelExterior.add(panelInterior);
panelInterior.setBounds(X, Y, ANCHO, ALTO);


Yo también tuve problemas con eso xD.
Aún así, lo mejor es aprender a usar los layouts para que se ajusten siempre al cambiar el tamaño y tal.
¿Y si el gap que le pones lo haces más grande? Creo que se podía...
Usa NetBeans, mira el código fuente que te ha generado para ver cómo lo hace y hazlo igual XD
ya intente mirar como lo hacia el netbeans, pero no encontraba donde lo hacia. inentare lo del gap, y mirare el enlace

muchas gracias
Para seleccionar el tamaño lo mejor es setBounds, indicando primero las cordenadas (x e y) y después el ancho y el alto.

Sin embargo, un "problema" que tiene java es que los layouts tienen preferencia a las posiciones manuales. Si quieres ponerlo a mano, lo mejor es usar setLayout(null) en el contenedor.
Dicho de otro modo.
panelExterior.setLayout(null);
panelExterior.add(panelInterior);
panelInterior.setBounds(X, Y, ANCHO, ALTO);


Yo también tuve problemas con eso xD.
Aún así, lo mejor es aprender a usar los layouts para que se ajusten siempre al cambiar el tamaño y tal.
este metodo ya me sirve, ya que lo que quiero hacer tiene tamaño fijo
gracias

edit: ya he visto como se hacen con layouts, pero es un poco coñazo y se sigue aplicando la solucion propuesta. He visto que cuando agregas un layout todo esto se situa dependiendo de como se alinee, o ocupando todo el layout, asi que no utlizo el panel principal como layout, sino creo que creo paneles y los situo donde quiero y si es necesario estos los uso como layouts. Aunque para lo que quiero hacer no me hacen falta
6 respuestas