Grazie mille!!!!! Non ci avevo pensato e sono giorni che ci stavo lavorando....
Riporto il codice per chi si trovasse in una situazione simile:
codice:
import javax.swing.JButton;
import javax.swing.JPanel;
public class Prova extends JPanel{
private JButton prova;
private boolean active;
public Prova() {
active = false;
prova = new JButton();
prova.setName("prova");
prova.addMouseListener(new MouseCatcher(this)); //Passo this overo questa classe al costrutore della classe che implementa MouseListener
}
public void check() {
if(active) {
System.out.println("attivo");
active = false;
}
else {
System.out.println("inattivo");
active = true;
}
}
}
codice:
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
public class MouseCatcher implements MouseListener{
private Prova prova; //Variabile di istanza di tipo Prova
//Costruttore al quale passo il riferimento alla classe chiamante
public MouseCatcher(Prova p) {
prova = p; // Pongo la variabile d'istanza uguale al riferimento
}
@Override
public void mouseClicked(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mousePressed(MouseEvent e) {
// TODO Auto-generated method stub
if(e.getComponent().getName() == "prova")
{
prova.check(); //utilizzo la variabile d'istanza
}
}
@Override
public void mouseReleased(MouseEvent e) {
// TODO Auto-generated method stub
}
}