Mega Code Archive

 
Categories / Java / 2D Graphics GUI
 

A program for viewing images

/*  This program is a part of the companion code for Core Java 8th ed.  (http://horstmann.com/corejava)  This program is free software: you can redistribute it and/or modify  it under the terms of the GNU General Public License as published by  the Free Software Foundation, either version 3 of the License, or  (at your option) any later version.  This program is distributed in the hope that it will be useful,  but WITHOUT ANY WARRANTY; without even the implied warranty of  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  GNU General Public License for more details.  You should have received a copy of the GNU General Public License  along with this program.  If not, see <http://www.gnu.org/licenses/>.  */ import java.awt.EventQueue; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.File; import javax.swing.ImageIcon; import javax.swing.JFileChooser; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; /**  * A program for viewing images.  *   * @version 1.22 2007-05-21  * @author Cay Horstmann  */ public class ImageViewer {   public static void main(String[] args) {     EventQueue.invokeLater(new Runnable() {       public void run() {         JFrame frame = new ImageViewerFrame();         frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);         frame.setVisible(true);       }     });   } } /**  * A frame with a label to show an image.  */ class ImageViewerFrame extends JFrame {   public ImageViewerFrame() {     setTitle("ImageViewer");     setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT);     // use a label to display the images     label = new JLabel();     add(label);     // set up the file chooser     chooser = new JFileChooser();     chooser.setCurrentDirectory(new File("."));     // set up the menu bar     JMenuBar menuBar = new JMenuBar();     setJMenuBar(menuBar);     JMenu menu = new JMenu("File");     menuBar.add(menu);     JMenuItem openItem = new JMenuItem("Open");     menu.add(openItem);     openItem.addActionListener(new ActionListener() {       public void actionPerformed(ActionEvent event) {         // show file chooser dialog         int result = chooser.showOpenDialog(null);         // if file selected, set it as icon of the label         if (result == JFileChooser.APPROVE_OPTION) {           String name = chooser.getSelectedFile().getPath();           label.setIcon(new ImageIcon(name));         }       }     });     JMenuItem exitItem = new JMenuItem("Exit");     menu.add(exitItem);     exitItem.addActionListener(new ActionListener() {       public void actionPerformed(ActionEvent event) {         System.exit(0);       }     });   }   private JLabel label;   private JFileChooser chooser;   private static final int DEFAULT_WIDTH = 300;   private static final int DEFAULT_HEIGHT = 400; }