Exit an application from a menu

From CodeCodex

Implementations[edit]

Java[edit]

import java.awt.*;
import java.awt.event.*;

public class ExitFromMenu extends Frame implements ActionListener {
  Menu m = new Menu("Exit From Here");

 ExitFromMenu() {
   super("");
   MenuBar mb = new MenuBar();

   mb.add(m);
   MenuItem m1 = m.add(new MenuItem("Exit", 
      new MenuShortcut(KeyEvent.VK_X)));
   m1.setActionCommand("Exit");
   m.addActionListener(this);

   setMenuBar(mb);

   addWindowListener
    (new WindowAdapter() {
        public void windowClosing(WindowEvent e) {
          // unique exit point
          System.out.println("Bye.");
          System.exit(0);
          }
        }
     );
   add(new Label
      ("You can quit by clicking on the 'X'"),"South");
   add(new Label
      ("You can quit by clicking on the menu item 'Exit'"),"Center");
   add(new Label
      ("You can quit with the MenuShortcut 'ctrl-x'"),"North");
   setSize(300, 300);    
   show();
   }

 public void actionPerformed(ActionEvent evt) {
   String what = evt.getActionCommand();

   if (what.equals("Exit")) 
     processEvent(new WindowEvent(this, WindowEvent.WINDOW_CLOSING));
   }

   static public void main(String[] args) {
     new ExitFromMenu();
   }
}

Tcl[edit]

toplevel .menu
pack .menu
menu .menu.menubar
.menu configure -menu .menu.menubar

set m .menu.menubar
menu $m.file
menu $m.help
$m add cascade -menu $m.file -label File
$m add cascade -menu $m.edit -label Help

$m.file add command -label "New" -command {}
$m.file add command -label "Open..." -command {}
$m.file add command -label "Close" -command {}
$m.file add command -label "Exit" -command exit

$m.help add command -label "About" -command {}