Simple swing application

I've been challenged to figure out what's wrong with this application. It seems to run as intended.

So far, I've came up with the following:

1) The EventDispatchThread is not respected; however, it is highly unlikely to cause an issue with this particular application.
2) The email address in the label and mailto do not match.
3) System.out.println(ex.getMessage()); >> ex.printStackTrace();


import java.awt.Desktop;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.net.URI;
 
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
 
public class wtf {
  static Desktop desktop;
  public static void main(String[] args) {
    
    if (Desktop.isDesktopSupported()) {
      desktop = Desktop.getDesktop();
    } else {
      System.out.println("Desktop class is not supported");
      System.exit(1);
    }
    JMenuItem openItem = new JMenuItem("Open");
    JMenuItem editItem = new JMenuItem("Edit");
    JMenuItem printItem = new JMenuItem("Print");
    JMenuItem browseToItem = new JMenuItem("Go to www.java2s.com");
    JMenuItem mailToItem = new JMenuItem("Email to a@java.com");
    JMenu fileMenu = new JMenu("File");
    JMenu mailMenu = new JMenu("Email");
    JMenu browseMenu = new JMenu("Browser");
    
    openItem.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent e) {
        JFileChooser chooser = new JFileChooser();
        if (chooser.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) {
          try {
            desktop.open(chooser.getSelectedFile().getAbsoluteFile());
          } catch (Exception ex) {
            ex.printStackTrace();
          }
        }
      }
    });
    fileMenu.add(openItem);
    
    editItem.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent e) {
        JFileChooser chooser = new JFileChooser();
        if (chooser.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) {
          try {
            desktop.edit(chooser.getSelectedFile().getAbsoluteFile());
          } catch (Exception ex) {
            ex.printStackTrace();
          }
        }
      }
    });
    fileMenu.add(editItem);
    
    printItem.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent e) {
        JFileChooser chooser = new JFileChooser();
        if (chooser.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) {
          try {
            desktop.print(chooser.getSelectedFile().getAbsoluteFile());
          } catch (Exception ex) {
            ex.printStackTrace();
          }
        }
      }
    });
    fileMenu.add(printItem);
    
    browseToItem.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent e) {
        try {
          URI browseURI = new URI("www.java2s.com");
          desktop.browse(browseURI);
        } catch (Exception ex) {
          System.out.println(ex.getMessage());
        }
      }
    });
    browseMenu.add(browseToItem);
 
    mailToItem.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent e) {
        try {
          URI mailURI = new URI("mailto:support@java.com");
          desktop.mail(mailURI);
        } catch (Exception ex) {
          System.out.println(ex.getMessage());
        }
      }
    });
    mailMenu.add(mailToItem);
 
    JMenuBar jMenuBar = new JMenuBar();
    jMenuBar.add(fileMenu);
    jMenuBar.add(browseMenu);
    jMenuBar.add(mailMenu);
 
    JFrame frame = new JFrame();
    frame.setTitle("Desktop Helper Applications");
    frame.setSize(300, 100);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setJMenuBar(jMenuBar);
    frame.setVisible(true);
    
  }
}

Open in new window

LVL 3
modsiwAsked:
Who is Participating?

[Webinar] Streamline your web hosting managementRegister Today

x
 
ellandrdConnect With a Mentor Commented:
has this example anything to do with this:

http://java.sun.com/developer/technicalArticles/J2SE/Desktop/javase6/desktop_api/

anyways i cant see much wrong but i would change some of the exception types like this:

try {
   URI browseURI = new URI("www.java2s.com");
   desktop.browse(browseURI);
} catch (Exception ex) {
   System.out.println(ex.getMessage());
}

should be:

try {
   URI browseURI = new URI("www.java2s.com");
   desktop.browse(browseURI);
} catch (IOException ex) {
   System.err.println(ex.getMessage());
} catch(URISyntaxException use) {
   System.err.println(use.printStackTrace());
}

ellandrd
0
 
ellandrdCommented:
what a grade B?  what did i do wrong?

ellandrd
0
All Courses

From novice to tech pro — start learning today.