package AP2DX.mapper;
// Imports for the interface
import javax.swing.*;
import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.lang.Thread;
import java.util.*;
import java.io.File;
import java.io.IOException;
/**
* @author Maarten de Waard
*/
public class PictureViewer extends JPanel implements Runnable
{
private String image;
private BufferedImage bgImage;
private static String pathToTheImage;
private BufferedImage backgroundImage;
public static int imageCounter = 0;
private static JFrame frame;
public static void main(String[] args)
{
frame = new JFrame("Map");
PictureViewer viewer = new PictureViewer();
frame.setBackground(java.awt.Color.white);
frame.getContentPane().add(viewer);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(500,500);
frame.setVisible(true);
String pathToTheImage = "hmap";
String image;
BufferedImage bgImage;
while(true)
{
try
{
image = String.format("%s%02d%s", pathToTheImage, imageCounter, ".png");
bgImage = ImageIO.read(new File(image));
imageCounter++;
viewer.updateImage(bgImage);
} catch (IOException ex)
{
try{Thread.sleep(1000);}catch(Exception e){}
}
}
}
public PictureViewer()
{
super();
frame = new JFrame("Map");
frame.setBackground(java.awt.Color.white);
frame.getContentPane().add(this);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(500,500);
frame.setVisible(true);
pathToTheImage = "hmap";
}
public void run()
{
while(true)
{
try
{
image = String.format("%s%02d%s", pathToTheImage, imageCounter, ".png");
bgImage = ImageIO.read(new File(image));
imageCounter++;
updateImage(bgImage);
} catch (IOException ex)
{
try{Thread.sleep(1000);}catch(Exception e){}
}
}
}
public void updateImage(BufferedImage backgroundImage)
{
this.backgroundImage = backgroundImage;
frame.setSize(backgroundImage.getWidth(),backgroundImage.getHeight());
repaint();
}
public void paintComponent(Graphics g) {
super.paintComponent(g);
if(backgroundImage != null)
g.drawImage(this.backgroundImage, 0, 0, null);
}
}