//MenuExample.java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
public class MenuExample
{
public static void main(String[] args)
{
MenuFrame frame = new MenuFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.show();
}
}
class MenuFrame extends JFrame
{
public MenuFrame()
{
setTitle("MenuExample");
setSize(WIDTH, HEIGHT);
Container contentPane = getContentPane();
JPanel textPanel=new JPanel();
//创建显示菜单操作的文本区
myTextField = new JTextField("", 20);
textPanel.add(myTextField);
contentPane.add(textPanel);
//创建菜单栏,并将菜单栏加入到框架中
JMenuBar menuBar = new JMenuBar();
setJMenuBar(menuBar);
//创建菜单及菜单项,并添加快捷键和加速器
//“File”菜单
JMenu fileMenu = new JMenu("File");
//设置菜单的快捷键
fileMenu.setMnemonic('F');
//新建“New”菜单项,并添加共用的事件监听器
newItem = fileMenu.add(new ShowAction("New"));
//设置菜单项的加速器
newItem.setAccelerator(KeyStroke.getKeyStroke(
KeyEvent.VK_N, InputEvent.CTRL_MASK));
//新建“Open”菜单项和监听器
openItem = fileMenu.add(new ShowAction("Open"));
openItem.setAccelerator(KeyStroke.getKeyStroke(
KeyEvent.VK_O, InputEvent.CTRL_MASK));
//增加分隔线
fileMenu.addSeparator();
//新建“Save”菜单项和监听器
saveItem = fileMenu.add(new ShowAction("Save"));
saveItem.setAccelerator(KeyStroke.getKeyStroke(
KeyEvent.VK_S, InputEvent.CTRL_MASK));
//初始设置“Save”菜单项为禁用状态
saveItem.setEnabled(false);
//新建“Close”菜单项和监听器
closeItem = fileMenu.add(new ShowAction("Close"));
closeItem.setAccelerator(KeyStroke.getKeyStroke(
KeyEvent.VK_L, InputEvent.CTRL_MASK));
closeItem.setEnabled(false);
fileMenu.addSeparator();
//新建“Exit”菜单项和监听器
JMenuItem exitItem = new JMenuItem("Exit", 'T');
exitItem.addActionListener(new AbstractAction("Exit")
{
public void actionPerformed(ActionEvent event)
{
System.exit(0);
}
});
exitItem.setAccelerator(KeyStroke.getKeyStroke(
KeyEvent.VK_T, InputEvent.CTRL_MASK));
fileMenu.add(exitItem);
//“Edit”菜单
JMenu editMenu = new JMenu("Edit");
//设置菜单的快捷键
editMenu.setMnemonic('E');
//新建“Cut”菜单项和监听器
cutItem = new JMenuItem("Cut", 'C');
editMenu.add(cutItem);
//添加事件监听器
cutItem.addActionListener(new ShowAction("Cut"));
cutItem.setAccelerator(KeyStroke.getKeyStroke(
KeyEvent.VK_U, InputEvent.CTRL_MASK));
cutItem.setEnabled(false);
//新建“Copy”菜单项和监听器
copyItem = new JMenuItem("Copy", 'Y');
copyItem.addActionListener(new ShowAction("Copy"));
copyItem.setAccelerator(KeyStroke.getKeyStroke(
KeyEvent.VK_Y, InputEvent.CTRL_MASK));
copyItem.setEnabled(false);
//新建“Paste”菜单项和监听器
pasteItem = new JMenuItem("Paste", 'P');
pasteItem.addActionListener(new ShowAction("Paste"));
pasteItem.setAccelerator(KeyStroke.getKeyStroke(
KeyEvent.VK_P, InputEvent.CTRL_MASK));
pasteItem.setEnabled(false);
editMenu.add(copyItem);
editMenu.add(pasteItem);
//“Search”菜单
JMenu searchMenu = new JMenu("Search");
searchMenu.setMnemonic('S');
//创建单选按钮菜单项“Forward”和“Backward”
ButtonGroup group = new ButtonGroup();
forwardItem = new JRadioButtonMenuItem("Forward");
forwardItem.addActionListener(new ShowAction("Forward"));
forwardItem.setSelected(true);
forwardItem.setEnabled(false);
backwardItem = new JRadioButtonMenuItem("Backward");
backwardItem.addActionListener(new ShowAction("Backward"));
backwardItem.setEnabled(false);
group.add(forwardItem);
group.add(backwardItem);
searchMenu.add(forwardItem);
searchMenu.add(backwardItem);
//"View"菜单
JMenu viewMenu = new JMenu("View");
viewMenu.setMnemonic('V');
//创建子菜单
JMenu optionMenu = new JMenu("Option");
optionMenu.setMnemonic('O');
//创建复选框菜单项“ToolBar”和“Status”
JCheckBoxMenuItem toolItem = new JCheckBoxMenuItem("ToolBar");
JCheckBoxMenuItem statusItem = new JCheckBoxMenuItem("Status");
toolItem.addActionListener(new ShowAction("ToolBar"));
statusItem.addActionListener(new ShowAction("Status"));
//将菜单项添加到子菜单中
optionMenu.add(toolItem);
optionMenu.add(statusItem);
//将子菜单添加到“View”菜单中
viewMenu.add(optionMenu);
//将菜单加入到菜单栏中
menuBar.add(fileMenu);
menuBar.add(editMenu);
menuBar.add(searchMenu);
menuBar.add(viewMenu);
//弹出式菜单
popup = new JPopupMenu();
//新建弹出式菜单中的“Cut”菜单项和监听器
cutItemPop = new JMenuItem("Cut", 'C');
cutItemPop.addActionListener(new ShowAction("CutPop"));
cutItemPop.setEnabled(false);
//新建弹出式菜单中的“Copy”菜单项和监听器
copyItemPop = new JMenuItem("Copy", 'Y');
copyItemPop.addActionListener(new ShowAction("CopyPop"));
copyItemPop.setEnabled(false);
//新建弹出式菜单中的“Paste”菜单项和监听器
pasteItemPop = new JMenuItem("Paste", 'P');
pasteItemPop.addActionListener(new ShowAction("PastePop"));
pasteItemPop.setEnabled(false);
popup.add(cutItemPop);
popup.add(copyItemPop);
popup.add(pasteItemPop);
//实现弹出式菜单的弹出触发器
getContentPane().addMouseListener(new MouseAdapter()
{
public void mouseReleased(MouseEvent event)
{
if (event.isPopupTrigger())
//指定弹出式菜单的父组件以及显示位置
popup.show(event.getComponent(),
event.getX(), event.getY());
}
});
}
//菜单项的共用事件监听器
private class ShowAction extends AbstractAction
{
public ShowAction(String name) { super(name); }
public void actionPerformed(ActionEvent event)
{
//实现菜单项的启用和禁用控制
if (event.getSource() == newItem ||
event.getSource() == openItem)
{
saveItem.setEnabled(true);
closeItem.setEnabled(true);
cutItem.setEnabled(true);
copyItem.setEnabled(true);
pasteItem.setEnabled(true);
forwardItem.setEnabled(true);
backwardItem.setEnabled(true);
cutItemPop.setEnabled(true);
copyItemPop.setEnabled(true);
pasteItemPop.setEnabled(true);
}
if (event.getSource() == closeItem)
{
saveItem.setEnabled(false);
closeItem.setEnabled(false);
cutItem.setEnabled(false);
copyItem.setEnabled(false);
pasteItem.setEnabled(false);
forwardItem.setEnabled(false);
backwardItem.setEnabled(false);
cutItemPop.setEnabled(false);
copyItemPop.setEnabled(false);
pasteItemPop.setEnabled(false);
}
//在文本域中显示菜单选择结果
myTextField.setText(getValue(Action.NAME)+ " selected.");
}
}
public static final int WIDTH = 250;
public static final int HEIGHT = 200;
private JMenuItem newItem;
private JMenuItem openItem;
private JMenuItem closeItem;
private JMenuItem saveItem;
private JMenuItem cutItem;
private JMenuItem copyItem;
private JMenuItem pasteItem;
private JMenuItem cutItemPop;
private JMenuItem copyItemPop;
private JMenuItem pasteItemPop;
private JRadioButtonMenuItem forwardItem;
private JRadioButtonMenuItem backwardItem;
private JPopupMenu popup;
private JTextField myTextField;
}
没有合适的资源?快使用搜索试试~ 我知道了~
《JAVA程序设计教程》电子教案
共188个文件
java:102个
class:61个
ppt:8个
需积分: 9 67 下载量 138 浏览量
2007-12-16
23:29:54
上传
评论
收藏 1.37MB RAR 举报
温馨提示
Java程序设计的基础教案,教案涉及的是基本知识点,学习Java要循序渐进。
资源推荐
资源详情
资源评论
收起资源包目录
《JAVA程序设计教程》电子教案 (188个子文件)
StringOp.class 2KB
Valuement.class 1KB
InheritanceTest.class 1KB
Employee.class 1KB
SimpleTypes.class 1KB
EmployeeTest.class 1KB
StaticTest.class 1KB
CharacterOp.class 1KB
ApplicationApplet.class 1KB
PopButtonTestApplet.class 1KB
ArithOp.class 1KB
ManagerTest.class 1003B
RelationOp.class 978B
Test.class 975B
ParamApplet.class 943B
TypeConversion.class 916B
ArraySort.class 912B
Circle.class 910B
StringBufferOp.class 907B
CalendarTest.class 894B
PersonTest.class 889B
charAtOp.class 886B
ArrayOfArrays.class 874B
CommandParam.class 859B
ArrayOfArrays2.class 838B
Employee.class 832B
BitOp.class 825B
LogicOp.class 825B
ArrayCopy.class 820B
ButtonPanel.class 816B
MaxOfThree.class 815B
ButtonPanel.class 813B
ButtonPanel.class 807B
Employee.class 786B
Employee.class 785B
Point.class 778B
Point.class 762B
ForOp2.class 750B
SwitchOp2.class 747B
SwitchOp1.class 739B
Scope.class 715B
PopButtonTestApplet$1.class 715B
ButtonPanel$ColorAction.class 669B
ButtonPanel$ColorAction.class 666B
ButtonPanel$ColorAction.class 660B
WhileOp.class 654B
DoWhileOp.class 651B
ContinueOp.class 651B
BreakOp.class 645B
ForOp1.class 642B
ArrayOfStrings.class 638B
Student.class 561B
ButtonFrame.class 518B
MyFirstApplet.class 515B
MyFirstApp.class 448B
ButtonTestApplet.class 445B
Manager.class 405B
ApplicationApplet$1.class 398B
ButtonTest.class 377B
Person.class 374B
InitVal.class 317B
peoplerandom.dat 168B
Thumbs.db 4KB
back.gif 1KB
cry.gif 973B
login.gif 276B
icon.gif 185B
smile.gif 185B
ParamApplet.htm 191B
ApplicationApplet.htm 181B
MyFirstApplet.htm 177B
PopButtonJAR.htm 163B
ButtonTestApplet.htm 141B
PopButtonTestApplet.htm 128B
CounterThreadApplet.html 211B
PopButtonClasses.jar 3KB
MenuExample.java 7KB
FileRandomRW.java 5KB
MouseDraw.java 4KB
FileRW.java 4KB
TokenStandardIO.java 3KB
TextFieldTest.java 2KB
CounterMultiThread.java 2KB
CounterThreadApplet.java 2KB
ListExample.java 2KB
ManagerTest.java 2KB
EchoServerThread.java 2KB
Cylinder.java 2KB
BorderExample.java 2KB
CounterThread.java 2KB
ComboBoxExample.java 2KB
Test.java 2KB
FileDirectory.java 2KB
SliderExample.java 2KB
Login.java 2KB
KeyPress.java 2KB
PersonTest.java 2KB
PopButtonTestApplet.java 2KB
CheckBoxExample.java 2KB
StaticTest.java 2KB
共 188 条
- 1
- 2
资源评论
sacawen
- 粉丝: 0
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功