Có thể xóa người nghe mà tôi đặt trên JPanel
của mình không? Khi tôi gọi một phương thức, tôi đặt KeyListener
trên bảng điều khiển nhưng khi tôi thoát khỏi phương thức này, tôi muốn xóa người nghe đó.Xóa người nghe chính khỏi bảng điều khiển
Đây là phương pháp của tôi:
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 .." * Để được trợ giúp tốt hơn trên các diễn đàn quốc tế, hãy đánh vần đúng từ. 2) Để được trợ giúp tốt hơn sớm hơn, hãy đăng một [SSCCE] (http://sscce.org/). –
* "khi tôi thoát phương thức này .." * 'phương thức này' là 'stopBall()' hoặc 'keyPressed()'? Tôi thấy câu hỏi của bạn khá khó hiểu. Bạn có thể giải thích những gì bạn muốn đạt được về những gì người dùng có thể thấy không? –
Không so sánh các chuỗi bằng cách sử dụng '==' như kiểm tra nếu hai đối tượng String * là một và giống nhau (mà bạn không quan tâm), không phải nếu các chuỗi giữ các ký tự giống nhau trong cùng một thứ tự (bạn * làm * quan tâm). Thay vào đó, hãy sử dụng phương thức String 'equals (...)' hoặc 'equalsIgnoreCase (...)'. –