La GUI no parece mostrarse cuando la creo en mi método principal

Tengo problemas para que se muestre mi GUI y estoy seguro de que me estoy perdiendo algo muy simple. Esto es para la tarea. La clase que contiene la GUI está aquí:

public class SorcGUI extends JFrame{

    public void SorcGUI(){
        JTextArea jta = new JTextArea();
        JPanel jp1 = new JPanel();
        setTitle ("Sorcerers Cave");
        setSize (600, 600);
        setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);

        JButton jbsearch = new JButton("Search");
        JTree jTree = null;
        JScrollPane treeView = new JScrollPane(jTree);

        JButton jbshow = new JButton("Show Contents");
        JButton jbread = new JButton("Import File");
        JScrollPane jsoutput = new JScrollPane(jta);
        JTextField jtfsearch = new JTextField("  enter search term  ");
        JLabel jlsearch = new JLabel("Search Type : ");
        JComboBox jcbsearch = new JComboBox <> ();
        jcbsearch.addItem ("index");
        jcbsearch.addItem ("Type");
        jcbsearch.addItem ("weight");

        //create a panel to hold the buttons and text fields

        jp1.add(jbread);     
        jp1.add(jbshow);  
        jp1.add(jtfsearch);
        jp1.add(jlsearch);
        jp1.add(jcbsearch);        
        jp1.add(jbsearch);
        jp1.add(treeView);


        //add the components to the GUI
        add(jp1, BorderLayout.PAGE_START);
        add(jsoutput, BorderLayout.CENTER);


        setVisible(true);

        jbread.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                SorcCave sc = new SorcCave();
            }
        });
        jbshow.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                System.out.println("show");
            }
        });        
        jbsearch.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                System.out.println("search");
            }
        });

Y la forma en que estoy creando la GUI es simplemente agregar lo siguiente a mi método principal:

SorcGUI gui = new SorcGUI();

El programa simplemente se ejecuta para compilar con éxito en tres segundos, sin mostrar nunca la GUI. Estoy tratando de limpiar mis proyectos colocando las cosas de la GUI en su propio archivo de clase. Gracias por cualquier ayuda.

preguntado el 29 de septiembre de 13 a las 22:09

Muestra tu método principal por favor. -

public static void main (String args []) { SorcGUI gui = new SorcGUI(); //gui.setVisible(verdadero); } // fin principal -

2 Respuestas

Eliminar el void palabra clave del constructor de SorcGUI para que los componentes se puedan agregar al contenedor principal

public SorcGUI() {

Leer: Proporcionar constructores para sus clases

Respondido el 30 de Septiembre de 13 a las 00:09

Elimine void del método para que pudiera convertirse en un constructor. - PM-77 1

Guau, realmente aprecio eso. ¡Trabajado como un encanto! - Jeremy

Copié y pegué su código y comenté el método de acción jbread y funciona en un nuevo proyecto Java en Eclipse IDE.

Solo eliminé el 'vacío' del método constructor.

enter image description here

Respondido el 29 de Septiembre de 13 a las 22:09

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.