Me gustaría saber como corregir este código Java

Me gustaría saber como puedo corregir este código, estoy empezando a aprender programación y no se que es lo que debería de hacer con este código para que se ejecute de forma correcta. ¿Alguien seria tan amable de explicarme como ejecutarlo? Lo estoy haciendo con netbeans y en el sistema operativo ubuntu 16.04, por si eso tuviera alguna relevancia.

Muchas gracias.

public class Main
extends JFrame {
public Main() {
JLabel lblSaludo = new JLabel("Hola Mundo. Creando mi primer ejemplo");
add(lblSaludo);
this.setSize(400,200);
this.setTitle("JFrame");
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
public static void main(String[] args) {
Main main = new Main();
}
}

1 Respuesta

Respuesta
1

La respuesta es bastante simple, el código está perfecto, pero no tienes los imports necesarios para su ejecución. Ni la clase JFrame de la que haces descender el Main, ni la clase Jlabel en la que guardas la String. Los imports agregan código de librerías de Java, librerías que te hayas descargado o incluso clases que tu mismo te has creado. En este caso son librerías que vienen con el mismo Java, tan solo agrega esto al principio después de definir el package.

import javax.swing.JFrame;
Import javax. Swing. Jlabel;

Aunque yo no lo haría así, que el Main se declare a si mismo es poco estético. Además puede resultar lioso para ti si estás empezando a aprender a programar, ya que Main es todo y todo va con Main desde Main a través de Main.
Mejor haz una clase aparte donde tener el JFrame, a la que llamaremos por ejemplo jframe:

public class Main {
    public static void main(String[] args) {
        jframe main = new jframe();
    }
}
class jframe extends JFrame {
    JLabel lblSaludo = new JLabel("Hola Mundo. Creando mi primer ejemplo");
    public jframe(){
        add(lblSaludo);
        this.setSize(400,200);
        this.setTitle("JFrame");
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setVisible(true);
    }
}

Si comparas ambos ejemplos, verás en que momento Main estaba haciendo de clase y en que momento Main estaba haciendo de código ejecutable.

Una pequeña corrección al último código que te envié para no liarte.
He mantenido el nombre del Jframe como "main" ya que es el que tenías al principio en tu código, pero ahí puedes poner lo que quieras (tercera línea después de "jframe" y antes de "=").
De hecho, podría generar errores dejarlo como main pues ya existe una función de tipo Void en esta classe (la misma que lo contiene).
Puedes llamarlo ventana, manolo, perro, paloma, como quieras mientras no tenga espacios ni accentos.
Por ej.

jframe Picasso = new jframe();

¡Gracias! Muchas gracias por la respuesta! me es de mucha ayuda de verdad!

Mis dieces!

Un saludo!

De nada, me alegra que te haya servido ^-^
Mucha suerte y conviértete en todo un profesional!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas