/*
Chapter 6.5:
Java MenuSystem
Programmer:
Brad Shedd
Date:
July 17, 2006
Filename:
Menusys.java
Purpose:
This Program has a working menu system and a large text area.
*/
import java.awt.*;
import java.awt.event.*;
import java.awt.datatransfer.*;
import javax.swing.JOptionPane;
public
class
Menusys
extends Frame
implements
ActionListener
{
private
TextField lcd;
private
boolean clearText;
public
Menusys()
{
//construct
components and initialize beginning values
lcd =
new
TextField (600);
//create an
instance of the menu
MenuBar mnuBar =
new
MenuBar();
setMenuBar(mnuBar);
//construct
and populate the File menu
Menu mnuFile =
new
Menu("File",
true);
mnuBar.add(mnuFile);
MenuItem mnuFileExit =
new
MenuItem("Exit");
mnuFile.add(mnuFileExit);
//construct
and populate the Edit menu
Menu mnuEdit =
new
Menu("Edit",
true);
mnuBar.add(mnuEdit);
MenuItem mnuEditClear =
new
MenuItem("Clear");
mnuEdit.add(mnuEditClear);
mnuEdit.insertSeparator(1);
MenuItem mnuEditCopy =
new
MenuItem("Copy");
mnuEdit.add(mnuEditCopy);
MenuItem mnuEditPaste =
new
MenuItem("Paste");
mnuEdit.add(mnuEditPaste);
//construct
and populate teh About menu
Menu mnuAbout =
new
Menu ("About",
true);
mnuBar.add(mnuAbout);
MenuItem mnuAboutCalculator =
new
MenuItem("About Calculator");
mnuAbout.add(mnuAboutCalculator);
//add the
ActionListener to each menu item
mnuFileExit.addActionListener(this);
mnuEditClear.addActionListener(this);
mnuEditCopy.addActionListener(this);
mnuEditPaste.addActionListener(this);
mnuAboutCalculator.addActionListener(this);
//assign an
ActionCommand to each menu item
mnuFileExit.setActionCommand("Exit");
mnuEditClear.setActionCommand("Clear");
mnuEditCopy.setActionCommand("Copy");
mnuEditPaste.setActionCommand("Paste");
mnuAboutCalculator.setActionCommand("About");
add(lcd,
BorderLayout.CENTER);
addWindowListener(
new
WindowAdapter()
{
public
void windowClosing(WindowEvent e)
{
System.exit(0);
}
}
);
}//endMenusys
public
void actionPerformed(ActionEvent e)
{
//test for menu itme clicks
String arg = e.getActionCommand();
if
(arg ==
"Exit")
System.exit(0);
if
(arg ==
"Clear")
{
clearText =
true;
lcd.setText("");
lcd.requestFocus();
}
if
(arg ==
"Copy")
{
Clipboard cb = Toolkit.getDefaultToolkit().getSystemClipboard();
StringSelection
contents =
new
StringSelection(lcd.getText());
cb.setContents(contents,
null);
}
if
(arg ==
"Paste")
{
Clipboard cb = Toolkit.getDefaultToolkit().getSystemClipboard();
Transferable content = cb.getContents(this);
try
{
String s = (String)content.getTransferData(DataFlavor.stringFlavor);
lcd.setText(s);
}
catch
(Throwable exc)
{
lcd.setText("");
}
}
if
(arg ==
"About")
{
String message ="Menusys:\n
Giant text box with menus";
JOptionPane.showMessageDialog(null,message,"AboutCalculator",
JOptionPane.INFORMATION_MESSAGE);
}
}
public
static
void
main(String args[])
{
//
set frame properties
Menusys f =
new
Menusys();
f.setTitle("Menusys");
f.setBounds(50,130,250,300);
f.setVisible(true);
}//end
main
}//end class