Как вы задерживаете программу при нажатии кнопки (java качели) - PullRequest
0 голосов
/ 10 апреля 2020

Я создаю программу с jbutton и jtextfield. Я хочу, чтобы в текстовом поле отображалось сообщение, а затем исчезал весь кадр через 1 секунду. Мне удалось отобразить сообщение и заставить кадр исчезнуть, используя frame.dispose, но я не вижу сообщения, потому что кадр исчезает мгновенно. Это то, что я пробовал. Я слышал, что использование таймера свинга также работает, но я понятия не имею, как использовать таймер свинга.

//imports

public class GUIFastCash {

    JFrame frame;
    static JTextField window;
    JButton twenty;

    public void go () {
        window = new JTextField();
        twenty = new JButton("$20");
        twenty.addActionListener(new Twenty());

        frame = new JFrame();
        //code adding button and textfield to frame
    }

    class Twenty implements ActionListener {
        public void actionPerformed (ActionEvent event) {
            //code to execute

            try {
                Thread.sleep(1000);
            } catch (InterruptedException ex) {
                Thread.currentThread().interrupt();
            }

            frame.dispose();

        }
    }

}

1 Ответ

0 голосов
/ 10 апреля 2020

Сначала необходимо создать подкласс TimerTask и переопределить метод run. Затем установите таймер для запуска по истечении заданного времени.

class Dispose extends TimerTask {
    @Override
    public void run() {
        frame.dispose;
    }
}

затем ...

new Timer().schedule(new Dispose(), 1000);

Объект таймера будет располагать кадр через 1000 миллисекунд (1сек)

...