1 19 20 package examples.imageviewer; 21 22 25 public class ImageViewer extends javax.swing.JFrame { 26 27 30 public ImageViewer() { 31 initComponents(); 32 pack(); 33 setBounds( 100, 100, 400, 400 ); 34 } 35 36 41 private void initComponents() { desktop = new javax.swing.JDesktopPane (); 43 mainMenuBar = new javax.swing.JMenuBar (); 44 fileMenu = new javax.swing.JMenu (); 45 openMenuItem = new javax.swing.JMenuItem (); 46 jSeparator1 = new javax.swing.JSeparator (); 47 exitMenuItem = new javax.swing.JMenuItem (); 48 49 setTitle("Image Viewer"); 50 addWindowListener(new java.awt.event.WindowAdapter () { 51 public void windowClosing(java.awt.event.WindowEvent evt) { 52 exitForm(evt); 53 } 54 }); 55 56 getAccessibleContext().setAccessibleName("Image Viewer Frame"); 57 getContentPane().add(desktop, java.awt.BorderLayout.CENTER); 58 desktop.getAccessibleContext().setAccessibleName("Image Desktop"); 59 desktop.getAccessibleContext().setAccessibleDescription("Image desktop"); 60 61 fileMenu.setMnemonic('f'); 62 fileMenu.setText("File"); 63 openMenuItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_O, java.awt.event.InputEvent.CTRL_MASK)); 64 openMenuItem.setMnemonic('o'); 65 openMenuItem.setText("Open"); 66 openMenuItem.addActionListener(new java.awt.event.ActionListener () { 67 public void actionPerformed(java.awt.event.ActionEvent evt) { 68 openMenuItemActionPerformed(evt); 69 } 70 }); 71 72 fileMenu.add(openMenuItem); 73 openMenuItem.getAccessibleContext().setAccessibleName("Open Menu Item"); 74 openMenuItem.getAccessibleContext().setAccessibleDescription("Open menu item."); 75 76 fileMenu.add(jSeparator1); 77 78 exitMenuItem.setMnemonic('x'); 79 exitMenuItem.setText("Exit"); 80 exitMenuItem.addActionListener(new java.awt.event.ActionListener () { 81 public void actionPerformed(java.awt.event.ActionEvent evt) { 82 exitMenuItemActionPerformed(evt); 83 } 84 }); 85 86 fileMenu.add(exitMenuItem); 87 exitMenuItem.getAccessibleContext().setAccessibleName("Exit Menu Item"); 88 exitMenuItem.getAccessibleContext().setAccessibleDescription("Exit menu item."); 89 90 mainMenuBar.add(fileMenu); 91 fileMenu.getAccessibleContext().setAccessibleName("File Menu"); 92 fileMenu.getAccessibleContext().setAccessibleDescription("File menu."); 93 94 setJMenuBar(mainMenuBar); 95 mainMenuBar.getAccessibleContext().setAccessibleName("Main Menu Bar"); 96 mainMenuBar.getAccessibleContext().setAccessibleDescription("Main menu bar."); 97 98 } 100 104 private void exitMenuItemActionPerformed(java.awt.event.ActionEvent evt) { System.exit( 0 ); 106 } 108 112 private void openMenuItemActionPerformed(java.awt.event.ActionEvent evt) { javax.swing.JFileChooser chooser = new javax.swing.JFileChooser (); 114 chooser.addChoosableFileFilter(new ImageFileFilter()); 115 int option = chooser.showOpenDialog(this); 116 if (option == javax.swing.JFileChooser.APPROVE_OPTION) { 117 java.io.File file = chooser.getSelectedFile(); 118 if (file == null) return; 119 ImageFrame ifr = new ImageFrame(file.getAbsolutePath()); 120 desktop.add(ifr, javax.swing.JLayeredPane.DEFAULT_LAYER); 121 122 ifr.setVisible( true ); 123 ifr.setSize(200, 200); 124 ifr.setLocation(0, 0); 125 } 126 } 128 131 private void exitForm(java.awt.event.WindowEvent evt) { System.exit(0); 133 } 135 137 private static class ImageFileFilter extends javax.swing.filechooser.FileFilter { 138 139 public boolean accept(java.io.File file) { 140 if (file == null) 141 return false; 142 return file.isDirectory() || file.getName().toLowerCase().endsWith(".gif") || file.getName().toLowerCase().endsWith(".jpg"); 143 } 144 145 public String getDescription() { 146 return "Image files (*.gif, *.jpg)"; 147 } 148 149 } 150 151 152 private javax.swing.JDesktopPane desktop; 154 private javax.swing.JMenuItem exitMenuItem; 155 private javax.swing.JMenu fileMenu; 156 private javax.swing.JSeparator jSeparator1; 157 private javax.swing.JMenuBar mainMenuBar; 158 private javax.swing.JMenuItem openMenuItem; 159 161 162 165 public static void main(String args[]) { 166 new ImageViewer().show(); 167 } 168 169 } 170 | Popular Tags |