Ayuda error en el main de Java

Iniciado por patxiku10, 23 Abril 2012, 12:24 PM

0 Miembros y 1 Visitante están viendo este tema.

patxiku10

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

Saqui_Dog

Buenas patxiku10,

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

Saludos.

sapito169

#2
corregido y repito es mejor trabajar en archivos separado


Ventana.java


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

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

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


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);
     }
  }




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