Foro de elhacker.net

Programación => Java => Mensaje iniciado por: patxiku10 en 23 Abril 2012, 12:24 pm



Título: Ayuda error en el main de Java
Publicado por: patxiku10 en 23 Abril 2012, 12:24 pm
Buenas, he estado programando un programilla para mirar las funciones de las clases graficas pero me da un error y no me deja ejecutarlo.

El error es el siguiente:
No enclosing instance of type Ventana is accessible. Must qualify the allocation with an enclosing instance of type Ventana (e.g. x.new A() where x is an instance of Ventana).
Os paso el codigo para que veais aer porque falla:


import java.awt.Color;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;


public class Ventana {

   
   class ventanita extends JFrame{
      
      ventanita(){
         JFrame ventana = new JFrame("TITULO");
         this.setSize(Toolkit.getDefaultToolkit().getScreenSize());
         this.setResizable(false);
         panel panel = new panel();
         this.add(panel);
         this.setVisible(true);
      }
   }
   class panel extends JPanel{
      
      panel(){
         JPanel panel = new JPanel();
         this.setBackground(Color.black);
         botoncierre b1 = new botoncierre();
         this.add(b1);
      }
   }
   class botoncierre extends JButton{
      JButton close = new JButton();
      botoncierre(){
         cierre cerrar = new cierre();
         this.addActionListener(cerrar);
      }
      
      
   }
   class cierre implements ActionListener{
      public void actionPerformed(ActionEvent e){
         System.exit(0);
      }
   }
   
   public static void main(String[]args){
      ventanita demo = new ventanita();
   }
   
}
El error esta en el codigo en rojo

Muchas gracias  :D


Título: Re: Ayuda error en el main de Java
Publicado por: Saqui_Dog en 24 Abril 2012, 22:26 pm
Buenas patxiku10,

tienes las clases ventanita, panel, botoncierre y cierre dentro de otra clase (Ventana), prueba sacarlas fuera.

Saludos.


Título: Re: Ayuda error en el main de Java
Publicado por: sapito169 en 28 Abril 2012, 04:16 am
corregido y repito es mejor trabajar en archivos separado


Ventana.java

Código:
import java.awt.Color;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;


public class Ventana {

   public static void main(String[]args){
      ventanita demo = new ventanita();
   }
  
}

ventanita .java
Código:
import java.awt.Color;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;

class ventanita extends JFrame{
      
      ventanita(){
        
         this.setSize(Toolkit.getDefaultToolkit().getScreenSize());
         this.setResizable(false);
         panel panel = new panel();
         this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
         this.add(panel);
         this.setVisible(true);
      }
   }

java panel
Código:
import java.awt.Color;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;


class panel extends JPanel{
      
      panel(){
         JPanel panel = new JPanel();
         this.setBackground(Color.black);
         botoncierre b1 = new botoncierre();
         this.add(b1);
      }
   }


cierre.java

Código:
import java.awt.Color;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;


class cierre implements ActionListener{
      public void actionPerformed(ActionEvent e){
         System.exit(0);
      }
   }


Código:
javac *.java

java Ventana

muchos errores y todavia no tienes claro como trabajar con varias clases pero estas aprendiendo bien lo vasico es bueno que te equivoques la mañor cantidad de veces sigue asi mejoraras

por favor responde te lo suplico no me ignores