Domanda

Ho un pannello di Java con 4 pulsanti. Quando clicco su di questi pulsanti, viene visualizzato un nuovo telaio e il primo è nascosta con setVisibile(false). In quella nuova finestra, ho un altro tasto, ma quando lo scatto, ho avuto l'evento corrispondente al quarto pulsante della prima finestra. Cliccando nuovamente il bottone fa il trucco, ma ovviamente questo non è accettabile. Mi sto perdendo qualcosa? Ho appena mostro le cornici con

nameOfTheFrame.setVisible(true);

e devo MouseListeners su ogni tasto.

Il codice del l'ultimo pulsante è semplicemente:

System.exit(0);

Modifica

Codice di esempio:

    private void btn_joinGamePressed(java.awt.event.MouseEvent evt) {
            GraphicsTools.getInstance().getCreateGame().setVisible(false);
            GraphicsTools.getInstance().getMainPanel().setVisible(false);
            GraphicsTools.getInstance().getRegistration().setVisible(true);
}

GraphicsTools è un Singleton.

EDIT 2 Alcune informazioni. Ho notato che su MAC OS funziona bene. Il problema si verifica solo su Linux e Windows.

È stato utile?

Soluzione

Questo deve accadere a causa dei vostri ascoltatori del mouse. Può essere che sta identificando il vecchio pulsante nel vostro primo clic, che si trova nella stessa posizione del nuovo pulsante (E 'solo la mia ipotesi).

Modificare gli ascoltatori del mouse per ascoltatori azione. Per un pulsante, è sufficiente se si dispone di azione ascoltatore.

Prova questo.

Altri suggerimenti

Prova chiamando revalidate() sui telai come si cambia la loro vitalità.

Modifica:

Potrebbe essere qualcosa con la creazione dei telai. Assicurarsi che si sta chiamando 'pack () `sulle cornici.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top