import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.*;
import javax.imageio.ImageIO;
import javax.swing.*;
public class Blinking implements Runnable {
ImageIcon icon;
JLabel label;
long delay = 2000;
public void run() {
int counter = 0;
while(true) {
try {
Thread.sleep(delay);
} catch(InterruptedException e) {
break;
}
if(counter++ % 2 == 0)
label.setIcon(null);
else
label.setIcon(icon);
label.repaint();
}
}
private void start() {
Thread thread = new Thread(this);
thread.setPriority(Thread.NORM_PRIORITY);
thread.start();
}
private JLabel getContent(BufferedImage image) {
icon = new ImageIcon(image);
label = new JLabel(icon, JLabel.CENTER);
label.setBorder(BorderFactory.createEtchedBorder());
label.setPreferredSize(label.getPreferredSize());
return label;
}
public static void main(String[] args) throws IOException {
String path = "images/hawk.jpg";
BufferedImage image = ImageIO.read(new File(path));
Blinking test = new Blinking();
JFrame f = new JFrame();
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setLayout(new GridBagLayout());
f.add(test.getContent(image), new GridBagConstraints());
f.setSize(400,400);
f.setLocation(200,200);
f.setVisible(true);
test.start();
}
}