我有 100 个相同的 JPanel,每个都包含带有图标的 JLabel 和带有文本的 JLabel。当某些事件发生时,我想将面板的图标和边框更改 2.5 秒,然后再将它们更改回来。问题是第一次它们被一起改变了,但是当我尝试改变它们时 - 第一个图标被改变,然后在 2 或 3 秒内改变了边框。这是 JPanel 执行此操作的方法:
public void showPacketCame() {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
img.setIcon(blue);
setBorder(BorderFactory.createLineBorder(new Color(54, 208, 243)));
javax.swing.Timer tim = new javax.swing.Timer(2500, new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
img.setIcon(onDark);
setBorder(null);
}
});
tim.setRepeats(false);
tim.setDelay(2500);
tim.start();
}
});
}