blob: 6fe153ad0ab5100e59ce3c61bd61d440ee62be06 [file] [log] [blame]
/**
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package examples.imageviewer;
/** This class is an entry point of the simple image viewer.
* It creates and shows the main application frame.
*/
public class ImageViewer extends javax.swing.JFrame {
/** Image Viewer constructor.
* It initializes all GUI components [menu bar, menu items, desktop pane, etc.].
*/
public ImageViewer() {
initComponents();
pack();
setBounds( 100, 100, 400, 400 );
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the FormEditor.
*/
private void initComponents() {//GEN-BEGIN:initComponents
desktop = new javax.swing.JDesktopPane();
mainMenuBar = new javax.swing.JMenuBar();
fileMenu = new javax.swing.JMenu();
openMenuItem = new javax.swing.JMenuItem();
jSeparator1 = new javax.swing.JSeparator();
exitMenuItem = new javax.swing.JMenuItem();
setTitle("Image Viewer");
addWindowListener(new java.awt.event.WindowAdapter() {
public void windowClosing(java.awt.event.WindowEvent evt) {
exitForm(evt);
}
});
getAccessibleContext().setAccessibleName("Image Viewer Frame");
getContentPane().add(desktop, java.awt.BorderLayout.CENTER);
desktop.getAccessibleContext().setAccessibleName("Image Desktop");
desktop.getAccessibleContext().setAccessibleDescription("Image desktop");
fileMenu.setMnemonic('f');
fileMenu.setText("File");
openMenuItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_O, java.awt.event.InputEvent.CTRL_MASK));
openMenuItem.setMnemonic('o');
openMenuItem.setText("Open");
openMenuItem.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
openMenuItemActionPerformed(evt);
}
});
fileMenu.add(openMenuItem);
openMenuItem.getAccessibleContext().setAccessibleName("Open Menu Item");
openMenuItem.getAccessibleContext().setAccessibleDescription("Open menu item.");
fileMenu.add(jSeparator1);
exitMenuItem.setMnemonic('x');
exitMenuItem.setText("Exit");
exitMenuItem.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
exitMenuItemActionPerformed(evt);
}
});
fileMenu.add(exitMenuItem);
exitMenuItem.getAccessibleContext().setAccessibleName("Exit Menu Item");
exitMenuItem.getAccessibleContext().setAccessibleDescription("Exit menu item.");
mainMenuBar.add(fileMenu);
fileMenu.getAccessibleContext().setAccessibleName("File Menu");
fileMenu.getAccessibleContext().setAccessibleDescription("File menu.");
setJMenuBar(mainMenuBar);
mainMenuBar.getAccessibleContext().setAccessibleName("Main Menu Bar");
mainMenuBar.getAccessibleContext().setAccessibleDescription("Main menu bar.");
}//GEN-END:initComponents
/** This method is called when File -> Exit menu item is invoked.
* It closes the application.
* @param evt ActionEvent instance passed from actionPerformed event.
*/
private void exitMenuItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_exitMenuItemActionPerformed
System.exit( 0 );
}//GEN-LAST:event_exitMenuItemActionPerformed
/** This method is called when File -> Open menu item is invoked.
* It displays a dialog to choose the image file to be opened and displayed.
* @param evt ActionEvent instance passed from actionPerformed event.
*/
private void openMenuItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_openMenuItemActionPerformed
javax.swing.JFileChooser chooser = new javax.swing.JFileChooser();
chooser.addChoosableFileFilter(new ImageFileFilter());
int option = chooser.showOpenDialog(this);
if (option == javax.swing.JFileChooser.APPROVE_OPTION) {
java.io.File file = chooser.getSelectedFile();
if (file == null) return;
ImageFrame ifr = new ImageFrame(file.getAbsolutePath());
desktop.add(ifr, javax.swing.JLayeredPane.DEFAULT_LAYER);
ifr.setVisible( true );
ifr.setSize(200, 200);
ifr.setLocation(0, 0);
}
}//GEN-LAST:event_openMenuItemActionPerformed
/** This method is called when the application frame is closed.
* @param evt WindowEvent instance passed from windowClosing event.
*/
private void exitForm(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_exitForm
System.exit(0);
}//GEN-LAST:event_exitForm
/** Define custom file filter for acceptable image files.
*/
private static class ImageFileFilter extends javax.swing.filechooser.FileFilter {
public boolean accept(java.io.File file) {
if (file == null)
return false;
return file.isDirectory() || file.getName().toLowerCase().endsWith(".gif") || file.getName().toLowerCase().endsWith(".jpg");
}
public String getDescription() {
return "Image files (*.gif, *.jpg)";
}
}
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JDesktopPane desktop;
private javax.swing.JMenuItem exitMenuItem;
private javax.swing.JMenu fileMenu;
private javax.swing.JSeparator jSeparator1;
private javax.swing.JMenuBar mainMenuBar;
private javax.swing.JMenuItem openMenuItem;
// End of variables declaration//GEN-END:variables
/** Starts the application.
* @param args Application arguments.
*/
public static void main(String args[]) {
new ImageViewer().show();
}
}