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

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Duda con interfaz Listener (MouseListener)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Duda con interfaz Listener (MouseListener)  (Leído 2,061 veces)
JonaLamper


Desconectado Desconectado

Mensajes: 394



Ver Perfil
Duda con interfaz Listener (MouseListener)
« en: 6 Abril 2015, 11:48 am »

Buenos días,




Como vemos, tengo dos botones (a1 y a2) los cuales implementan distintas interfaces. El botón a1 implementa ActionListener y el botón a2 implementa MouseListener.

El botón a1 implementa el único método de la interfaz ActionListener, es decir, el método actionPerformed. Ahora bien, cuando voy a usar la interfaz MouseListener, solo quiero utilizar el método mousePressed, pero debo declarar todos los demás métodos (pues estoy implementando una interfaz).

El problema es que queda feísimo el código, porque aparecen 4 métodos que no uso para nada. ¿Se puede hacer algún apaño para que no quede tan feo?


« Última modificación: 6 Abril 2015, 19:44 pm por JonaLamper » En línea

Utilizar palabras para hablar de palabras es como utilizar un lápiz para hacer un dibujo de ese lápiz sobre el mismo lápiz.
Usuario Invitado


Desconectado Desconectado

Mensajes: 625



Ver Perfil
Re: Duda con interfaz Listener (MouseListener)
« Respuesta #1 en: 6 Abril 2015, 13:49 pm »

Una interface es un contrato y describe el comportamiento que debe tener las clases que la implementen. Por lo que, al hacer eso te ves obligado a sobreescribir esos métodos porque en esencia esa clase es la misma interface pero mostrando su implementación.

Lo que puedes hacer es hacer que una clase abstracta la implemente:

Código
  1. public abstract class AbstractMouseListener implements MouseListener {
  2.  
  3.    // todos los metodos de MouseListener
  4. }

Y tu controlador hereda de la clase abstracta:

Código
  1. public class SomeController extends AbstractMouseListener {
  2.    private SomeGUI gui;
  3.  
  4.    public SomeController(SomeGUI gui) {
  5.        this.gui = gui;
  6.    }
  7.    @Override
  8.    public void mousePressed(MouseEvent event) {
  9.        // hacer algo
  10.    }
  11. }


Saludos.


« Última modificación: 6 Abril 2015, 16:31 pm por Gus Garsaky » En línea

"La vida es muy peligrosa. No por las personas que hacen el mal, si no por las que se sientan a ver lo que pasa." Albert Einstein
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[DUDA] Interfaz Grafica en C++
Programación C/C++
cacara 3 5,490 Último mensaje 3 Enero 2012, 12:25 pm
por cacara
Duda con programar con interfaz grafica
Programación General
Miguell64x 3 2,147 Último mensaje 23 Julio 2012, 15:52 pm
por El_Java
Ayuda con action listener
Java
guntanis 0 1,464 Último mensaje 21 Junio 2013, 03:16 am
por guntanis
[Android][Call Listener] Registrar llamadas ¿Como hacerlo?
Java
LaThortilla (Effort) 2 1,763 Último mensaje 7 Abril 2015, 23:35 pm
por LaThortilla (Effort)
Phishing listener
Hacking
Black Koala 1 2,280 Último mensaje 12 Abril 2023, 12:16 pm
por zape_es
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines