Моя программа когда-нибудь зависает, когда я набираю текстовое поле рекордов - PullRequest
2 голосов
/ 17 июля 2011

Я делаю игру, которая работает с компонентами свинга (только для представления высоких результатов), но иногда, когда я печатаю вещи, они замирают;Я не знаю почему, и это трудно отладить.

Итак, мне пришлось сделать это

create class SubmitHighScore(ScreenManager, int forScore)
implement KeyListener

Я отключил Swing, чтобы рисовать себя с помощью созданного мной класса, называемого NullRepaintManager.Я сделал это, чтобы рисовать без мерцания

Это реализованный метод, который я заполнил

@Override
public void keyTyped(KeyEvent e) {
    // TODO Auto-generated method stub

    //e.consume();
}

@Override
public void keyPressed(KeyEvent e) {
    // TODO Auto-generated method stub
    if (e.getKeyCode()==KeyEvent.VK_ENTER){
        highScore.addScore(new Score(highScoreTextField.getText(),score));
        exit.tap();
    }
    //e.consume();

}

@Override
public void keyReleased(KeyEvent e) {
    //filter High Score text. Only A-Z and a-z otherwhise will ignore
    highScoreTextField.setText(filter(highScoreTextField.getText()));
    //e.consume();
}

Это простое имя, которое будет отправлено, когда игрок нажмет клавишу ВВОД, ноиногда замерзает.Я попытался использовать setFocusTraversalKeysEnabled (false) и вызвал e.consume (что заставляет мое текстовое поле не заполняться, когда я вызываю потреблять)

Как это исправить?

Есть ли другой способ отправкиЛучшие результаты?Обратите внимание, что я украшаю высокие баллы с помощью bg и frame, чтобы это выглядело как другая игра.

...