Ist es möglich, einen Hörer zu löschen, den ich auf meine JPanel
legte? Wenn ich eine Methode anrufe, lege ich eine KeyListener
auf das Panel, aber wenn ich diese Methode beende, möchte ich diesen Listener löschen.Entfernen Sie die Taste Listener von Panel
Hier ist meine Methode:
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 .." * Für bessere Hilfe in internationalen Foren, Wörter richtig buchstabieren. 2) Für bessere Hilfe, post ein [SSCCE] (http://sscce.org/). –
* "Wenn ich diese Methode beende .." * 'Diese Methode' ist 'stopBall()' oder 'keyPressed()'? Ich finde deine Frage ziemlich verwirrend. Können Sie erklären, was Sie in Bezug darauf erreichen möchten, was der Benutzer sehen könnte? –
Vergleichen Sie Strings nicht mit '==', da dies prüft, ob die beiden String * -Objekte * ein und dasselbe sind (was Ihnen egal ist), nicht wenn die Strings die gleichen Zeichen in der gleichen Reihenfolge enthalten (was Sie kümmern sich um). Verwenden Sie stattdessen die Methode String 'equals (...)' oder 'equalsIgnoreCase (...)'. –