JOptionPane中的java更新消息
我正在尝试制作一个数字时钟,它在一个JOptionPane中显示时间。我已经在消息对话框中显示了时间。但是,我不知道如何让它在对话框中每秒钟更新一次时间
这就是我目前拥有的:
Date now = Calendar.getInstance().getTime();
DateFormat time = new SimpleDateFormat("hh:mm:ss a.");
String s = time.format(now);
JLabel label = new JLabel(s, JLabel.CENTER);
label.setFont(new Font("DigifaceWide Regular", Font.PLAIN, 20));
Toolkit.getDefaultToolkit().beep();
int choice = JOptionPane.showConfirmDialog(null, label, "Alarm Clock", JOptionPane.YES_NO_OPTION, JOptionPane.PLAIN_MESSAGE);
# 1 楼答案
这太可怕了,我觉得应该更容易做到
基本上,你需要某种“股票代码”,你可以用它来更新标签的文本
因为我们不想违反Swing的单线程规则,最简单的解决方案是使用一个
javax.swing.Timer
每隔500毫秒左右滴答一次(捕捉边缘情况)通过虚拟设置标签的文本,它会自动发布重新绘制请求,这让我们的生活变得简单