john pfeiffer
  • Home
  • Categories
  • Tags
  • Archives

swing slideshow main jpanel

//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();
 */

  • « LdapSearch filter logoncount
  • swing slideshow ImageViewer »

Published

Jun 7, 2012

Category

java

~274 words

Tags

  • java 252
  • jpanel 1
  • main 10
  • slideshow 8
  • swing 9