我想暂时更改 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/