私は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();
}
});
}