Как получить метод для ожидания выполнения кода таймера?

public void highlightThisText(){

    int delay = 1000;
    ActionListener tp = new ActionListener(){

        public void actionPerformed(ActionEvent ae){
            try{
                System.out.println();
                if(name.equals("Correct")){
                    thisPanel.getHighlighter().addHighlight(startIndex, endIndex, hl);
                }
                else{
                    anotherPanel.getHighlighter().addHighlight(startIndex, endIndex, hl);
                }

            } catch (BadLocationException ex) {
                ex.printStackTrace();
            }
        }
    };
    Timer t = new Timer(delay, tp);
    t.setRepeats(false);
    t.start();      
}

Мне нужно, чтобы моя программа входила в метод highlightThisText, выполняла код таймера и после задержки покидала метод. Я понимаю, что не могу использовать Thread.sleep(1000); так как это заблокирует EDT, но я не могу найти здесь других примеров с подобной проблемой. startIndex и endIndex будут увеличены после того, как метод будет оставлен, что означает, что правильная строка не будет выделена.

Любая помощь будет высоко оценена.

0 ответов

Другие вопросы по тегам