//2012-06-07 johnpfeiffer
import java.awt.Graphics;
import java.awt.GraphicsEnvironment;
import java.awt.Rectangle;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileFilter;
import java.io.IOException;
import java.util.ArrayList;
import javax.imageio.ImageIO;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Main extends JPanel
{
private static final long serialVersionUID = 1L;
private static final int SECONDSTOSLEEP = 2000;
private int screenHeight = 0;
private int screenWidth = 0;
private BufferedImage img = null;
private int imageHeight = 0;
private int imageWidth = 0;
private ArrayList <String> fileNames = null;
Main()
{
initializeDisplays();
initializeLocalFileListing();
}
public void paint( Graphics g )
{
g.drawImage( img , 0 , 0 , null );
}
public void LoadImage( String fileName )
{
try
{
img = ImageIO.read( new File( fileName ) );
imageHeight = img.getHeight();
imageWidth = img.getWidth();
System.out.println( "DEBUG: " + fileName + " image size width,height = " + imageHeight + "," + imageWidth );
} catch( IOException e )
{
e.printStackTrace();
}
}
private void initializeDisplays()
{
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
Rectangle r = ge.getMaximumWindowBounds();
screenHeight = r.height;
screenWidth = r.width;
System.out.println( "DEBUG: default display size " + screenHeight + " x " + screenWidth );
}
private void initializeLocalFileListing()
{
fileNames = new ArrayList <String>();
String tempDirectoryPath = System.getProperty( "java.io.tmpdir" );
File tempDirectory = new File( tempDirectoryPath );
File[] files = tempDirectory.listFiles( new ImageFileFilter() );
for( File f : files )
{
fileNames.add( f.toString() );
System.out.println( "DEBUG: found image file " + f );
}
}
public static void main( String args[] )
{
Main panel = new Main();
JFrame frame = new JFrame( "ImageViewer" );
frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
for( String current : panel.fileNames )
{
panel.LoadImage( current );
frame.getContentPane().add( panel );
frame.pack();
frame.setLocation( 0 , 0 );
frame.setSize( panel.screenWidth , panel.screenHeight );
frame.validate();
frame.setVisible( true );
try
{
Thread.sleep( SECONDSTOSLEEP );
} catch( Exception e )
{
e.printStackTrace();
}
frame.invalidate();
panel.removeAll();
}
System.out.println( "finished" );
System.exit( 0 );
}
class ImageFileFilter implements FileFilter
{
private final String[] okFileExtensions = new String[]
{ "jpg" };
public boolean accept( File file )
{
for( String extension : okFileExtensions )
{
if ( file.getName().toLowerCase().endsWith( extension ) )
{
return true;
}
}
return false;
}
}
} // end class
/*
* EXTRA STUFF
* GraphicsDevice[] gs = ge.getScreenDevices();
* for( int i = 0 ; i < gs.length ; i++ )
* {
* DisplayMode dm = gs[i].getDisplayMode();
* int screenWidth = dm.getWidth();
* int screenHeight = dm.getHeight();
* System.out.println( "DEBUG: Display " + i + " with size " + screenWidth +
* " x " + screenHeight );
* }
* GraphicsDevice defaultDevice = ge.getDefaultScreenDevice();
* DisplayMode targetDisplay = defaultDevice.getDisplayMode();
*/