Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Temas - lerner

Páginas: [1]
1
¡Hola!

Estoy haciendo un programa de ejemplo para mostrar un frame en JAVA con la clase swing. Me ha salido un error de principiante, el "non-static variable this cannot be referenced from a static context".

Tengo un paquete llamado "graficos" en el que he metido un único fichero .java llamado "CreandoMarcos", dentro del cual tengo el método main, la clase "CreandoMarcos" y dos clases más: "miMarco" y "miMarcoBis". Estas dos últimas clases hacen lo mismo, pintar un frame en la pantalla; he creado dos sólo para hacer pruebas de sintaxis.

Mientras la clase "miMarco" la he declarado fuera de la clase "CreandoMarcos", la otra clase "miMarcoBis" la he declarado dentro de "CreandoMarcos" como clase interna suya. Y ahí he encontrado el primer problema, cuando instancio la clase "miMarcoBis" dentro del main recibo el error "non-static variable this cannot be referenced from a static context". Pongo el código que estoy escribiendo:

Código: [Seleccionar]
package graficos;
import javax.swing.*;

public class CreandoMarcos {

    public static void main(String[] args) {

        miMarco marco1 = new miMarco();
        marco1.setVisible(true);
        marco1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        miMarcoBis marco2 = new miMarcoBis();   // Aquí es donde me da el error...
    }

    class miMarcoBis extends JFrame {

        public miMarcoBis() {
            setSize(500, 300);
            setVisible(true);
            setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        }
    }
}

class miMarco extends JFrame {

    public miMarco() {
        setSize(500, 300);
    }
}

¿Por qué no me deja en el main crear una instancia de miMarcoBis si declaro esa clase dentro de CreandoMarcos en lugar de fuera?

Gracias y un saludo,

Lerner

Páginas: [1]

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".