Source Code : Image Sorter frame

Java Is Open Source Programming Language You Can Download From Java and Java Libraries From http://www.oracle.com. Click Here to download
We provide this code related to title for you to solve your developing problem easily. Libraries which is import in this program you can download from http://www.oracle.com. Click Here or search from google with Libraries Name you get jar file related it

Image Sorter frame

 


//package com.ryanm.util.swing;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.image.ImageObserver;
import java.io.File;
import java.io.FilenameFilter;
import java.io.IOException;

import javax.imageio.ImageIO;
import javax.swing.JFrame;
import javax.swing.JPanel;

/**
 * @author ryanm
 */
public class ImageSorter extends JFrame
{

  /**
   * @param args
   */
  public static void main( String[] args )
  {
    new ImageSorter( args[ 0 ], args[ 1 ], args[ 2 ] );
  }

  private File[] inputs;

  private int index = -1;

  private File leftOutput;

  private File rightOutput;

  private ImagePanel panel = new ImagePanel();

  /**
   * @param in
   * @param leftOut
   * @param rightOut
   */
  public ImageSorter( String in, String leftOut, String rightOut )
  {
    super( "ImageSorter" );

    setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );

    inputs = new File( in ).listFiles( new FilenameFilter() {

      @Override
      public boolean accept( File dir, String name )
      {
        String s = name.toLowerCase();

        return s.endsWith( "jpg" );
      }

    } );

    leftOutput = new File( in, leftOut );
    rightOutput = new File( in, rightOut );

    leftOutput.mkdirs();
    rightOutput.mkdirs();

    assert leftOutput.canWrite();
    assert rightOutput.canWrite();

    panel.setPreferredSize( new Dimension( 640, 480 ) );
    getContentPane().setLayout( new BorderLayout() );
    getContentPane().add( panel, BorderLayout.CENTER );

    panel.addKeyListener( new KeyAdapter() {

      @Override
      public void keyReleased( KeyEvent e )
      {
        if( e.getKeyCode() == KeyEvent.VK_RIGHT )
        {
          inputs[ index ].renameTo( new File( rightOutput, inputs[ index ].getName() ) );
        }
        else if( e.getKeyCode() == KeyEvent.VK_LEFT )
        {
          inputs[ index ].renameTo( new File( leftOutput, inputs[ index ].getName() ) );
        }

        nextImage();
      }

    } );

    panel.addMouseListener( new MouseAdapter() {

      @Override
      public void mouseReleased( MouseEvent e )
      {
        panel.requestFocusInWindow();
      }

      @Override
      public void mousePressed( MouseEvent e )
      {
        panel.requestFocusInWindow();
      }

      @Override
      public void mouseEntered( MouseEvent e )
      {
        panel.requestFocusInWindow();
      }

      @Override
      public void mouseClicked( MouseEvent e )
      {
        panel.requestFocusInWindow();
      }

    } );

    panel.requestFocusInWindow();

    nextImage();

    pack();
    setVisible( true );
  }

  private void nextImage()
  {
    index++;

    if( index >= inputs.length )
    {
      System.exit( 0 );
    }

    try
    {
      panel.image = ImageIO.read( inputs[ index ] );
      panel.repaint();
    }
    catch( IOException e )
    {
      e.printStackTrace();
    }
  }

  private class ImagePanel extends JPanel
  {
    private Image image = null;

    @Override
    public void paint( Graphics g )
    {
      g.setColor( Color.LIGHT_GRAY );
      g.fillRect( 0, 0, getWidth(), getHeight() );
      if( image != null )
      {
        g.drawImage( image, 0, 0, new ImageObserver() {

          @Override
          public boolean imageUpdate( Image img, int infoflags, int x, int y, int width,
              int height )
          {
            repaint();

            return infoflags == ALLBITS;
          }

        } );
      }

      g.setColor( Color.BLACK );
      g.drawString( inputs[ index ].getName(), 10, getHeight() - 10 );
    }
  }

}

   
  

Thank with us