Ciao ragazzi è qualche giorno che provo ad effettuare un controllo su una variabile di tipo boolean tramite un if e una volta verificata cerco di cambiarne lo stato ma non ne vuol sapere, il problema a mio avviso è che quando chiamo il metodo che verifica lo stato lo faccio creando una nuova istanza della classe, in questo caso new Prova().check(); , avete qualche consiglio da darmi per aggirare questo problema? Avevo pensato di fare implementare la classe MouseListener alla classe Prova ma se possibile vorrei evitare questo metodo. Vi lascio il codice.

Grazie in anticipo per la vostra disponibilità.

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 MouseCacther());
	}
	
	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 MouseCacther implements MouseListener{

	@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")
		{
			new Prova().check();
		}
	}

	@Override
	public void mouseReleased(MouseEvent e) {
		// TODO Auto-generated method stub
		
	}

}