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

Problema al visualizar componentes en NetBeans

Estas en el tema de Problema al visualizar componentes en NetBeans en el foro de Java en Foros del Web. Hola Tengo un frame en donde coloco una serie de botones, que se llenan con una matriz. El problema es que al correr el proyecto ...
  #1 (permalink)  
Antiguo 25/08/2015, 21:57
 
Fecha de Ingreso: agosto-2015
Mensajes: 3
Antigüedad: 8 años, 8 meses
Puntos: 0
Problema al visualizar componentes en NetBeans

Hola
Tengo un frame en donde coloco una serie de botones, que se llenan con una matriz. El problema es que al correr el proyecto en Netbeans, a veces solo me muestra el frame vacío, a veces se muestra la cantidad correcta de botones y a veces se muestran solamente algunos botones.

Código:
package tictactoe;

import java.awt.Container;
import java.awt.GridLayout;
import javax.swing.JFrame;
import javax.swing.JButton;

public class InicializarJuego extends JFrame{
    
    public InicializarJuego()
    {
        super("Sopa De Letras");
        setSize(600,600);
        setResizable(false);
        setVisible(true);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        Container contenedor = getContentPane();
        GridLayout g1 = new GridLayout(8,8);
        g1.setHgap(1);
        g1.setVgap(1);
        contenedor.setLayout(g1);
        
        String sopaLetras[][] = new String[][]{
        {"A","N","A","D","E","F","G","H"},
        {"J","B","C","D","E","F","G","H"},
        {"O","B","C","D","E","F","G","H"},
        {"A","B","C","D","E","F","G","H"},
        {"C","B","C","D","E","F","G","H"},
        {"A","B","C","D","E","F","G","H"},
        {"S","B","C","D","E","F","G","H"},
        {"A","B","C","D","E","F","G","H"}
        };
        for(int i=0;i<8;i++)
        {
            for(int j=0;j<8;j++)
            {
                //contenedor.add(new JButton(sopaLetras[i][j]));
                contenedor.add(new JButton(sopaLetras[i][j]));
            }
        }
    }
}
 Esta es la clase donde cargo la matriz de botones.

Código:
package tictactoe;

import javax.swing.*;
import java.awt.*;

public class TicTacToe extends JFrame {


    InicializarJuego inicio = new InicializarJuego();

    public static void main(String[] args) {
        new InicializarJuego();
    }
    
        add(p);
        
        setVisible(true);
    }
    
}
Esta es la clase principal

A que se debe este comportamiento y cómo se soluciona
Saludos

Última edición por luisenrique380; 25/08/2015 a las 22:36
  #2 (permalink)  
Antiguo 26/08/2015, 01:11
Avatar de Profesor_Falken  
Fecha de Ingreso: agosto-2014
Ubicación: Mountain View
Mensajes: 1.323
Antigüedad: 9 años, 8 meses
Puntos: 182
Respuesta: Problema al visualizar componentes en NetBeans

Buenas,

No se si esta relacionado con tu problema particular, pero no estas inicializando correctamente el programa en Swing.

En Swing todos los componentes graficos deben correr en un hilo especial llamado Event Distpatcher Thread (EDT) para evitar bloqueos en la gestions de los eventos. Por lo tanto deberias inicializar asi:

Código Java:
Ver original
  1. public static void main(String[] args) {
  2.     SwingUtilities.invokeLater(new Runnable() {
  3.         public void run() {
  4.             InicializarJuego();
  5.             //etc
  6.         }
  7.     });
  8. }

https://docs.oracle.com/javase/tutor.../dispatch.html

Por otro lado el ejemplo que pones ni siquiera compila (de donde sale la variable p?) y InicializarJuego deberia ser un JPanel (no tiene sentido aniadir un JFrame a un JFrame).


Un saludo
__________________
If to err is human, then programmers are the most human of us

Etiquetas: Ninguno
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:10.