Image Viewer

<< Dimmer with image filters | SquintTrailIndex | Draw X >>

To get started, here is a simple application that will load and save images

ImageViewer.java

import java.awt.*;
import squint.*;
import javax.swing.*;
import java.io.File;

/*
 * ImageViewer --- a GUIManager to display a single image
 */
public class ImageViewer extends GUIManager {
    // The image to display
    private SImage picture;

    // Label used to display the image
    private JLabel displayImage = new JLabel( "", SwingConstants.CENTER );
    private JLabel fileNameLabel = new JLabel( "", SwingConstants.CENTER );
    // Buttons and dialog box used to load and save images
    private JFileChooser chooser = new JFileChooser( new File( System.getProperty("user.dir")) );
    private JButton load = new JButton("Load Image");
    private JButton save = new JButton("Save Image");

    // Place all the GUI components in the GUIManager's pane
    public ImageViewer() {
      contentPane.setLayout( new BorderLayout() );
      contentPane.add(fileNameLabel, BorderLayout.NORTH);
      contentPane.add( new JScrollPane( displayImage ), BorderLayout.CENTER );
      JPanel buttons = new JPanel();
      buttons.add(load);
      buttons.add(save);
      contentPane.add(buttons, BorderLayout.SOUTH);
    }

    // Load or save an image
    public void buttonClicked( JButton which ) {
        if (which == load) {
            if ( chooser.showOpenDialog(this) == JFileChooser.APPROVE_OPTION) {
                setPic(new SImage( chooser.getSelectedFile().getAbsolutePath() ) );
                String name = chooser.getSelectedFile().toString();
                fileNameLabel.setText(name);
            }
        } else if (which == save  && picture != null ) {
           if ( chooser.showSaveDialog(this) == JFileChooser.APPROVE_OPTION ) {
               String name = chooser.getSelectedFile().toString();
               if ( ! name.endsWith(".png" ) ) {
                   name = name + ".png";
                }
                picture.saveAs(name);
                fileNameLabel.setText(name);
            }            
        }
    }

    // Set the image displayed within the viewer
    public void setPic( SImage newPic ) {
        picture = newPic;
        displayImage.setIcon( picture );
    }

    // Get the image displayed within the viewer
    public SImage getPic( ) {
        return picture;
    }



}

Squit1App.java


/**
 * Squint1App has the main method
 * to start up the ImageViewerDisplay.
 * 
 * @author Chris Thiel
 * @version 23 Jan 2010
 */
public class Squint1App
{
     public static void main(String[] args)
    {
      ImageViewer squint1=new ImageViewer();
      squint1.createWindow(1200,600);
    }
}