Foros del Web » Programación para mayores de 30 ;) » Java »

Cambiar el tamaño de un JPanel

Estas en el tema de Cambiar el tamaño de un JPanel en el foro de Java en Foros del Web. Tengo un panel izquierdo y un panel derecho. Dentro del izquierdo tengo varios paneles más pequeños, 4 para ser exactos. En el derecho solo tengo ...
  #1 (permalink)  
Antiguo 29/10/2011, 15:28
 
Fecha de Ingreso: octubre-2011
Mensajes: 58
Antigüedad: 12 años, 6 meses
Puntos: 0
Cambiar el tamaño de un JPanel

Tengo un panel izquierdo y un panel derecho. Dentro del izquierdo tengo varios paneles más pequeños, 4 para ser exactos. En el derecho solo tengo uno que presenta una imagen.

Lo que quiero es que el izquierdo ocupe mas o menos un 70% del todo el ancho de la ventana, como al ventana tiene un ancho de 700, un 70% vendria siendo 490, yo le puse 10 mas, o sea 500, y el izquierdo que ocupe el resto, o sea 200 (la imagen que va en ese panel tiene 182x223, es decir cabe), pero no me funciona, asi es como queda:



Como se ve a simple vista, el panel izquierdo y el derecho tienen el mismo ancho.

Este es el codigo:
Código Java:
Ver original
  1. //ventana unica y principal
  2.         this.setTitle("El Ahorcaito");
  3.         this.setSize(700,470); //ancho, alto
  4.         this.setLayout(new GridLayout(1,2));
  5.         this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  6.         this.setVisible(true);
  7.         this.setIconImage(Toolkit.getDefaultToolkit().getImage("icono.gif"));
  8.        
  9.         //PANEL IZQUIERDO
  10.         panelIzq = new JPanel();
  11.         panelIzq.setSize(500,470);
  12.         panelIzq.setLayout(new GridLayout(4,1));
  13.        
  14.             //panel de las palabras
  15.             panelPalabras = new JPanel();
  16.             panelPalabras.setLayout(new FlowLayout());
  17.             panelPalabras.setSize(500,117);
  18.             panelPalabras.setBackground(Color.lightGray);
  19.             titulo = BorderFactory.createTitledBorder("Palabras");
  20.             panelPalabras.setBorder(titulo);
  21.             lbl_palabraAntes = new JLabel();
  22.             panelPalabras.add(lbl_palabraAntes);
  23.            
  24.             lbl_palabra = new JLabel();
  25.             panelPalabras.add(lbl_palabra);
  26.            
  27.             lbl_palabraDespues = new JLabel();
  28.             panelPalabras.add(lbl_palabraDespues);
  29.            
  30.             panelIzq.add(panelPalabras);
  31.            
  32.             //panel de intentos
  33.             panelIntentos = new JPanel();
  34.             panelIntentos.setLayout(new FlowLayout());
  35.             panelIntentos.setSize(500,117);
  36.             panelIntentos.setBackground(Color.lightGray);
  37.             titulo = BorderFactory.createTitledBorder("Intentos");
  38.             panelIntentos.setBorder(titulo);
  39.             lbl_letras = new JLabel();
  40.             panelIntentos.add(lbl_letras);
  41.             panelIzq.add(panelIntentos);
  42.            
  43.             //panel de letras
  44.             panelLetras = new JPanel();
  45.             panelLetras.setLayout(new FlowLayout());
  46.             panelLetras.setSize(500,117);
  47.             panelLetras.setBackground(Color.lightGray);
  48.             titulo = BorderFactory.createTitledBorder("Letras");
  49.             panelLetras.setBorder(titulo);
  50.            
  51.            
  52.             jcb = new JComboBox(abcdario);
  53.             boton = new JButton("Aceptar");
  54.             ren = new JButton("reiniciar");
  55.             panelLetras.add(ren);
  56.             panelLetras.add(jcb);
  57.             panelLetras.add(boton);
  58.             panelIzq.add(panelLetras);
  59.            
  60.             //panel de mensajes
  61.             panelMensajes = new JPanel();
  62.             panelMensajes.setLayout(new FlowLayout());
  63.             panelMensajes.setSize(500,117);
  64.             panelMensajes.setBackground(Color.lightGray);
  65.             titulo = BorderFactory.createTitledBorder("Mensajes");
  66.             panelMensajes.setBorder(titulo);
  67.             lbl_msj = new JLabel("Le quedan 6 intentos");
  68.             panelMensajes.add(lbl_msj);
  69.             panelIzq.add(panelMensajes);
  70.             reintento = new JButton("Volver a intentar");
  71.             panelMensajes.add(reintento);
  72.             reintento.setVisible(false);
  73.            
  74.             this.getContentPane().add(panelIzq);
  75.            
  76.        
  77.         //PANEL DERECHO
  78.         panelDer = new JPanel();
  79.         panelDer.setSize(200,470);
  80.         panelDer.setLayout(new FlowLayout());
  81.        
  82.             //la imagen
  83.             panelImg = new JPanel();
  84.             panelImg.setLayout(new FlowLayout());
  85.             panelImg.setSize(200,470);
  86.             lbl_img = new JLabel();
  87.             lbl_img.setIcon(imagen[0]);
  88.             panelImg.add(lbl_img, BorderLayout.CENTER);
  89.             panelDer.add(panelImg, BorderLayout.CENTER);
  90.            
  91.             this.getContentPane().add(panelDer);
__________________
La libertad más difícil de conservar es la de equivocarse. - Morris Wes

Lo que faltaba en internet: http://binar10s.blogspot.com/
  #2 (permalink)  
Antiguo 30/10/2011, 07:42
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 6 meses
Puntos: 454
Respuesta: Cambiar el tamaño de un JPanel

Hola:

Lo importante es el layout que le hayas puesto a this.getContentPane().setLayout(....)

¿Cual es?. El layout es el que decide el tamaño de los paneles que van dentro.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #3 (permalink)  
Antiguo 30/10/2011, 16:19
 
Fecha de Ingreso: octubre-2011
Mensajes: 58
Antigüedad: 12 años, 6 meses
Puntos: 0
Respuesta: Cambiar el tamaño de un JPanel

Es GridLayout(4,1)

Intenté ponerlo con FlowLayout, pero es que entonces se desorganiza y tengo que modificarlo todo
__________________
La libertad más difícil de conservar es la de equivocarse. - Morris Wes

Lo que faltaba en internet: http://binar10s.blogspot.com/
  #4 (permalink)  
Antiguo 30/10/2011, 23:45
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 6 meses
Puntos: 454
Respuesta: Cambiar el tamaño de un JPanel

GridLayout hace que todos los componentes tengan el mismo tamaño, por eso te salen los dos paneles del mismo tamaño. Prueba otra vez con FlowLayout, pero a los setSize() de los paneles, llama a setPreferredSize().

Echa de todas formas un ojo a los layouts y para qué sirve cada uno http://chuwiki.chuidiang.org/index.p...Uso_de_Layouts

Se bueno.
__________________
Apuntes Java
Wiki de Programación

Etiquetas: jpanel, tamaño
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:45.