class ImageViewerFrame extends JFrame {
public ImageViewerFrame() {
logger.entering("ImageViewerFrame", "<init>");
setTitle("LoggingImageViewer");
setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT);
JMenuBar menuBar = new JMenuBar();
setJMenuBar(menuBar);
JMenu menuFile = new JMenu("File");
menuBar.add(menuFile);
JMenuItem openItem = new JMenuItem("Open");
menuFile.add(openItem);
openItem.addActionListener(new FileOpenListener());
JMenuItem exitItem = new JMenuItem("Exit");
menuFile.add(exitItem);
exitItem.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent event) {
logger.fine("Exiting.");
System.exit(0);
}
});
label = new JLabel();
add(label);
logger.exiting("ImageViewerFrame", "<init>");
}
private class FileOpenListener implements ActionListener {
@Override
public void actionPerformed(ActionEvent event) {
logger.entering("ImageViewerFrame.FileOpenListener", "actionPerformed", event);
JFileChooser chooser = new JFileChooser();
chooser.setCurrentDirectory(new File("."));
chooser.setFileFilter(new javax.swing.filechooser.FileFilter() {
@Override
public boolean accept(File f) {
return f.getName().toLowerCase().endsWith(".gif") || f.isDirectory();
}
@Override
public String getDescription() {
return "GIF Images";
}
});
int r = chooser.showOpenDialog(ImageViewerFrame.this);
if(r == JFileChooser.APPROVE_OPTION) {
String name = chooser.getSelectedFile().getPath();
logger.log(Level.FINE, "Reading file {0}", name);
label.setIcon(new ImageIcon(name));
} else {
logger.fine("File open dialog canceled.");
}
logger.exiting("ImageViewerFrame.FileOpenListener", "actionPerformed");
}
}
private JLabel label;
private static Logger logger = Logger.getLogger("logger");
private static final int DEFAULT_WIDTH = 300;
private static final int DEFAULT_HEIGHT = 400;
}