gpt4 book ai didi

java - 5 秒后删除 JLabel 中的文本?

转载 作者:行者123 更新时间:2023-12-01 06:40:00 24 4
gpt4 key购买 nike

我想知道是否有任何简单的方法可以在 5 秒后删除 JLabel 中的内容(文本)。那可能吗?因为我在 JFrame 中有一个 JLabel,它显示了我正在编码的程序中的一些内部错误,并且我希望 JLabel 显示该消息几秒钟,然后变为空白。有什么想法吗?

最佳答案

最简单的解决方案是使用 Swing Timer。它将防止卡住 GUI 并确保正确的线程访问(即,在 EDT 上执行 UI 修改)。

小演示示例:

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.SwingUtilities;
import javax.swing.Timer;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;

public class TestLabelDelete {
private JFrame frame;
private JLabel label;

protected void initUI() {
frame = new JFrame(TestLabelDelete.class.getSimpleName());
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
label = new JLabel("Some text to delete in 5 seconds");
frame.add(label);
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
Timer t = new Timer(5000, new ActionListener() {

@Override
public void actionPerformed(ActionEvent e) {
label.setText(null);
}
});
t.setRepeats(false);
t.start();
}

public static void main(String[] args) throws ClassNotFoundException, InstantiationException, IllegalAccessException,
UnsupportedLookAndFeelException {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
TestLabelDelete testLogin = new TestLabelDelete();
testLogin.initUI();
}

});
}

}

关于java - 5 秒后删除 JLabel 中的文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14668151/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com