java - 如何更改 JLabel 文本 x 秒

标签 java swing timer jlabel

我想暂时更改 JLabel 文本(有一个计数器,如果有人在文本字段中输入了错误的答案,我想显示“错误答案”而不是计数器。几秒钟后我想再次显示计数器。)

最佳答案

对于 fixed-delay execution 某些代码您想要使用计时器对象,在本例中 javax.swing.Timer 。这是一个适用于您的情况的演示:

public static void main(String[] args) {
    SwingUtilities.invokeLater(()->{
        JFrame frame = new JFrame();
        frame.setLayout(new FlowLayout());
        JLabel label = new JLabel("One");
        JButton button = new JButton("Ok");
        button.addActionListener(e -> {
            String oldText = label.getText();
            label.setText("Changed");
            Timer timer = new Timer(2000, event -> {
                label.setText(oldText);
            });
            timer.setRepeats(false);
            timer.start();
        });
        frame.add(label);
        frame.add(button);
        frame.pack();
        frame.setVisible(true);
    });
}

按钮的监听器更改标签的文本并启动 Swing 计时器(此处的熔断时间为 2 秒)。一旦计时器超时,它就会向(计时器的)注册监听器发送一个操作事件,在本例中,监听器会将文本恢复为原始文本。

关于java - 如何更改 JLabel 文本 x 秒,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58357255/

相关文章:

java - Android StAX 游标解析器 - 找不到方法 javax.xml.stream.XMLInputFactory.newInstance

java 。如何创建具有可调整大小的文本区域和固定按钮区域的 JPanel?

java - 如何使用两个 jar 配置 JVM Argument -javaagent

java - GridBagLayout 适用于更高的分辨率,但不适用于更低的分辨率

java - 停止运行多个实例的 Eclipse/Java

java - Android/java - 在 onClick 中使用计时器循环

Java JTable 定制设计

java - 如何获取给定 LookAndFeel 的可用主题?

c# - System.Windows.Forms.Timer 继续运行

c# - 定时器在 C# 中没有被重置