import java.awt.BorderLayout; import java.awt.Dimension; import java.awt.EventQueue; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.image.BufferedImage; import java.io.IOException; import javax.imageio.ImageIO; import javax.swing.ImageIcon; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.Timer;public class Rocks { public static void main(final java.lang.String[] args) { java.awt.EventQueue.invokeLater(new java.lang.Runnable(){ private int index = 0; @Override public void run(){ try { final BufferedImage source = ImageIO.read(Rocks.class.getResource("progress.png")); final ImageIcon[] steps = new ImageIcon[32]; for (int y = 0; y < 128; y += 32) { for (int x = 0; x < 256; x +=32) { steps[index++] = new ImageIcon(source.getSubimage(x,y,32,32)); } } index = 0; JFrame frame = new JFrame("Rocks"); final JLabel status = new JLabel(steps[index]); frame.add(status,BorderLayout.PAGE_END); frame.setLocationRelativeTo(null); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setPreferredSize(new Dimension(600,400)); frame.pack(); frame.setVisible(true); new Timer(50,new ActionListener(){ @Override public void actionPerformed(ActionEvent e){ status.setIcon(steps[(++index) % 31 + 1]); } }).start(); } catch (IOException e) { // It should not reach here } } }); } }
import java.awt.Dimension;
import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.image.BufferedImage;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.Timer;public class Rocks {
public static void main(final java.lang.String[] args) {
java.awt.EventQueue.invokeLater(new java.lang.Runnable(){
private int index = 0;
@Override public void run(){
try {
final BufferedImage source = ImageIO.read(Rocks.class.getResource("progress.png"));
final ImageIcon[] steps = new ImageIcon[32]; for (int y = 0; y < 128; y += 32) {
for (int x = 0; x < 256; x +=32) {
steps[index++] = new ImageIcon(source.getSubimage(x,y,32,32));
}
}
index = 0;
JFrame frame = new JFrame("Rocks"); final JLabel status = new JLabel(steps[index]);
frame.add(status,BorderLayout.PAGE_END);
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setPreferredSize(new Dimension(600,400));
frame.pack();
frame.setVisible(true); new Timer(50,new ActionListener(){
@Override public void actionPerformed(ActionEvent e){
status.setIcon(steps[(++index) % 31 + 1]);
}
}).start();
} catch (IOException e) {
// It should not reach here
}
}
});
}
}