È possibile cancellare un listener che ho inserito nel mio JPanel
? Quando chiamo un metodo, inserisco uno KeyListener
sul pannello, ma quando esco da questo metodo, voglio cancellare quel listener.Rimozione del listener di chiavi dal pannello
Qui è il mio metodo:
private void stopBall(final Graphics2D g2, int posBallY, String winner) {
move = false;
scorePanel.showPressSpace(true);
setFocusable(true);
requestFocus();
addKeyListener(new KeyAdapter() {
public void keyPressed(KeyEvent e){
if (e.getKeyCode() == KeyEvent.VK_SPACE){
setPosX(getPlayPanelWidth()/2);
setPosY(0);
move = true;
scorePanel.showPressSpace(false);
initBall(g2);
}
}});
if (winner == "player1") {
scoreCountPlayer1++;
scorePanel.getLab_Player1().setText("" + scoreCountPlayer1);
} else if (winner == "comp") {
scoreCountComputer++;
scorePanel.getLab_Computer().setText("" + scoreCountComputer);
}
}
1) * "Hey guyz .." * Per un aiuto migliore sui forum internazionali, scrivere correttamente le parole. 2) Per un aiuto migliore prima, pubblica un [SSCCE] (http://sscce.org/). –
* "quando esco da questo metodo .." * 'questo metodo' è 'stopBall()' o 'keyPressed()'? Trovo la tua domanda abbastanza confusa. Potresti spiegare cosa vuoi ottenere in termini di ciò che l'utente potrebbe vedere? –
Non confrontare le stringhe usando '==' in quanto verifica se i due oggetti String * * sono uno e lo stesso (di cui non ti interessa), non se le stringhe contengono gli stessi caratteri nello stesso ordine (che * ti * freghi di). Usa invece il metodo String 'equals (...)' o 'equalsIgnoreCase (...)'. –