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

Problema: no muestra panel con botones al ejecutar

Estas en el tema de Problema: no muestra panel con botones al ejecutar en el foro de Java en Foros del Web. Buenas nuevamente, tengo un código del JFrame creado que es el siguiente: Código: public class EjemploGrid extends javax.swing.JFrame { JPanel panelGrid; JButton boton7, boton8, boton9, ...
  #1 (permalink)  
Antiguo 22/06/2015, 15:57
Avatar de socosa  
Fecha de Ingreso: junio-2015
Ubicación: Asunción
Mensajes: 12
Antigüedad: 8 años, 10 meses
Puntos: 0
Problema: no muestra panel con botones al ejecutar

Buenas nuevamente, tengo un código del JFrame creado que es el siguiente:

Código:
public class EjemploGrid extends javax.swing.JFrame {
    JPanel panelGrid;
    JButton boton7, boton8, boton9, boton10, boton11, 
            boton12, boton13, boton14, boton15;
    int contComponentes;

    public EjemploGrid() {
        initComponents();        
        this.setTitle("Ejemplo GridLayout");
        
        /*se crea el panel con gridlayout
        este layout manager será establecido con tres filas  y tres columnas*/
        //panelGrid = new JPanel(new GridLayout(3,3));  
        panelGrid = new JPanel();
        panelGrid.setBorder(BorderFactory.createTitledBorder("GridLayout"));
        
        boton7 = new JButton("Botón7");
        boton8 = new JButton("Botón8");
        boton9 = new JButton("Botón9");
        boton10 = new JButton("Botón10");
        boton11 = new JButton("Botón11");
        boton12 = new JButton("Botón12");
        boton13 = new JButton("Botón13");
        boton14 = new JButton("Botón14");
        boton15 = new JButton("Botón15");
        
        panelGrid.add(boton7);
        panelGrid.add(boton8);
        panelGrid.add(boton9);
        panelGrid.add(boton10);
        panelGrid.add(boton11);
        panelGrid.add(boton12);
        panelGrid.add(boton13);
        panelGrid.add(boton14);
        panelGrid.add(boton15);
        
        this.getContentPane().add(panelGrid);

        contComponentes = panelGrid.getComponentCount();
        JOptionPane.showMessageDialog(null, "Hay " +contComponentes+ 
                                                  "componentes en el panel");
    }
//...
}
Según la imagen del pdf del curso de Java que sigo, la idea es que muestre el panel y los 9 botones en esas 3 filas y 3 columnas fijadas con GridLayout. Lo cierto es que ejecuto el proyecto y solo abre el frame, totalmente vacío.

Buscando en internet vi que hay esta función para saber cuántos componentes posee el panel: getComponentCount();

Entonces lo llamo para saber si efectivamente agrega los botones al panel. Y así lo hace, pues el mensaje devuelve que hay 9 elementos.

¿Qué hago mal por eso no muestra en absoluto los botones ordenados con GridLayout ni el título del panel?

Recontra hiper revisé el código y no sé qué le falta para que muestre los componentes que se creo vía código.

Por favor, ayúdenme!
  #2 (permalink)  
Antiguo 22/06/2015, 17:09
inazense
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Problema: no muestra panel con botones al ejecutar

Te falta añadir el método pack() y setVisible(true). Añadí eso y ya me mostraba los botones, luego borras la línea 18 que te sobrescribía el gridlayout por un flow y descomentas la anterior línea.
También quité el initComponents(), porque en mi Eclipse me daba error.

Te copio el código tal cual.

Código Java:
Ver original
  1. import java.awt.*;
  2. import javax.swing.*;
  3.  
  4. public class EjemploGrid extends javax.swing.JFrame {
  5.     JPanel panelGrid;
  6.     JButton boton7, boton8, boton9, boton10, boton11,
  7.             boton12, boton13, boton14, boton15;
  8.     int contComponentes;
  9.  
  10.     public EjemploGrid() {
  11.      
  12.         this.setTitle("Ejemplo GridLayout");
  13.        
  14.         /*se crea el panel con gridlayout
  15.         este layout manager será establecido con tres filas  y tres columnas*/
  16.         panelGrid = new JPanel((new GridLayout(3,3)));  
  17.         panelGrid.setBorder(BorderFactory.createTitledBorder("GridLayout"));
  18.        
  19.         boton7 = new JButton("Botón7");
  20.         boton8 = new JButton("Botón8");
  21.         boton9 = new JButton("Botón9");
  22.         boton10 = new JButton("Botón10");
  23.         boton11 = new JButton("Botón11");
  24.         boton12 = new JButton("Botón12");
  25.         boton13 = new JButton("Botón13");
  26.         boton14 = new JButton("Botón14");
  27.         boton15 = new JButton("Botón15");
  28.        
  29.         panelGrid.add(boton7);
  30.         panelGrid.add(boton8);
  31.         panelGrid.add(boton9);
  32.         panelGrid.add(boton10);
  33.         panelGrid.add(boton11);
  34.         panelGrid.add(boton12);
  35.         panelGrid.add(boton13);
  36.         panelGrid.add(boton14);
  37.         panelGrid.add(boton15);
  38.        
  39.         this.getContentPane().add(panelGrid);
  40.         this.pack();
  41.         this.setVisible(true);
  42.     }
  43. //...
  44. }

Etiquetas: panel, pantalla
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 12:57.