package com.bytezone.diskbrowser.gui; import java.awt.event.ActionEvent; import java.awt.event.KeyEvent; import java.io.IOException; import java.io.InputStream; import java.util.Properties; import javax.swing.Action; import javax.swing.JOptionPane; import javax.swing.KeyStroke; import com.bytezone.common.DefaultAction; public class AboutAction extends DefaultAction { public AboutAction () { super ("About...", "Display build information", "/com/bytezone/diskbrowser/icons/"); putValue (Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke ("alt A")); putValue (Action.MNEMONIC_KEY, KeyEvent.VK_A); setIcon (Action.SMALL_ICON, "information_16.png"); setIcon (Action.LARGE_ICON_KEY, "information_32.png"); } @Override public void actionPerformed (ActionEvent e) { about (); } public void about () { int build = 0; String buildDate = ""; Properties props = new Properties (); InputStream in = this.getClass ().getResourceAsStream ("build.properties"); if (in != null) { try { props.load (in); in.close (); build = Integer.parseInt (props.getProperty ("build.number")); buildDate = props.getProperty ("build.date"); } catch (IOException e1) { System.out.println ("Properties file not found"); } } JOptionPane.showMessageDialog (null, "Author - Denis Molony\nBuild #" + String.format ("%d", build) + " - " + buildDate + "\n" + "\nContact - dmolony@iinet.net.au", "About DiskBrowser", JOptionPane.INFORMATION_MESSAGE); } }