elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Consulta sobre llamada a un metodo
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Consulta sobre llamada a un metodo  (Leído 2,260 veces)
kurupi13

Desconectado Desconectado

Mensajes: 7


Ver Perfil
Consulta sobre llamada a un metodo
« en: 1 Octubre 2013, 07:33 am »

Tengo un problema con un metodo al cual no logro llamar, el compilador me dice void type not allowed here.

Me explico, tengo una clase FiuniPaint extends JFrame implements MouseInputListener que es donde basicamente se dibujan figuras en pantalla como rectangulos, ovalos, etc. en eso no hay problema.

Tambien hay otra clase PanelDeFiguras extends JPanel, esa clase hace que todos los objetos que se dibujan en pantalla se guarden en un ArrayList, en esa clase esta este metodo.

figuras es el ArrayList

Citar
public void borrarTodo() {
        this.figuras.clear();
    }

Lo que no consigo es poder llamar a este metodo desde la clase FiuniPaint con un JButton

estas son las formas que probe

limpiar es mi boton y panel es mi objeto PanelDeFiguras. Son de instancia las dos

Citar
panel.add(limpiar);
limpiar.addActionListener(this.panel.borrarTodo());

De esta forma obtengo void type not allowed here

-------------------------------

En esta me parece que esta la solucion pero no se puede llamar a la variable panel dentro de actionPerformed. No se por que no encuentra mi variable panel dentro de ese metodo escribiendo por ejemplo this.panel.borrarTodo();

Citar
panel.add(limpiar);
limpiar.addActionListener(new ActionListener(){
           
         @Override
         public void actionPerformed(ActionEvent ae){
         
         }           
         });

Les agradeceria si alguien me puede ayudar. Gracias de antemano.




En línea

visualfree

Desconectado Desconectado

Mensajes: 201


Ver Perfil
Re: Consulta sobre llamada a un metodo
« Respuesta #1 en: 1 Octubre 2013, 17:16 pm »

Coloca mas código para tener mayor detalle de lo que estas haciendo...

lo que veo es que podrias crear otra instancia de ese ArrayList<>

lista = new ArrayList<String>();

o lo que tu ya tienes

lista.clear();

Saludos.


En línea

kurupi13

Desconectado Desconectado

Mensajes: 7


Ver Perfil
Re: Consulta sobre llamada a un metodo
« Respuesta #2 en: 1 Octubre 2013, 21:39 pm »

bueno, dentro de este metodo en la clase FiuniPaint se encuentran los botones para crear las diferentes figuras, y tambien es donde deberia estar el boton que borra el ArrayList que las contiene.
La clase es muy extensa como para poner todo el codigo, puse solo lo mas importante, resumido, y es justamente en esta parte en donde estoy teniendo problemas para borrar el ArrayList con clear()

Clase FiuniPaint
Citar
private PanelDeFiguras panel = new PanelDeFiguras();
private JButton limpiar = new JButton("Borrar pantalla");
private JButton rectangulo = new JButton("Rectangulo");

private JPanel figuras() {
        JPanel panel = new JPanel();
        panel.setLayout(new FlowLayout());

        /*
         this.panel.borrarTodo();
         panel.add(limpiar);
         limpiar.addActionListener(new ActionListener(){
           
         @Override
         public void actionPerformed(ActionEvent ae){
         this.panel.borrarTodo();
         }
               
         });*/

       // limpiar.addActionListener(this.panel.borrarTodo());

        // Boton Figura Rectangulo
        panel.add(rectangulo);
        rectangulo.addActionListener(
                new SeleccionadorDeFigura(this, new RectanguloFactory()));

        return panel;
    }

en la clase PanelDeFiguras

Citar
//ArrayList para guardar las figuras
private ArrayList<Figura> figuras = new ArrayList<>();

//Metodo que deberia de poder usar para borrar los objetos del ArrayList
public void borrarTodo() {
        this.figuras.clear();
    }

//De esta forma agregamos objetos al ArrayList
@Override
    public void paint(Graphics g) {
        for (int i = 0; i < figuras.size(); i++) {
            figuras.get(i).dibujar(g);
        }
    }


Es basicamente la parte con la que tengo problemas, no puedo poner todo el codigo simplemente porque es muy largo.
Reitero, lo que deberia de poder hacer es llamar al metodo borrarTodo() con un boton desde la clase FiuniPaint, pero eso me da un error void type not allowed here

Gracias al que pueda ayudarme.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Informacion sobre el metodo de la lista muerta
Ingeniería Inversa
mbc 3 2,329 Último mensaje 18 Marzo 2005, 16:20 pm
por pERICOTE
Error en llamada a metodo
Java
m@o_614 4 3,236 Último mensaje 14 Mayo 2012, 01:03 am
por [Case]
Duda sobre el método get
Java
reygecko 2 1,974 Último mensaje 16 Enero 2013, 23:49 pm
por reygecko
Consulta metodo Matriz Java
Java
matc33 2 2,164 Último mensaje 23 Octubre 2013, 17:28 pm
por visualfree
¿Por qué es ambigua la llamada a este método?
Programación C/C++
Repikas 1 2,915 Último mensaje 26 Junio 2017, 14:43 pm
por ivancea96
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines