javaswing做菜单栏
java主窗口菜单栏设计,登录界面跳到主界面,主界面状态栏加

java主窗口菜单栏设计,登录界面跳到主界面,主界面状态栏
加
摘要:
1.Java 主窗口菜单栏设计
2.登录界面跳到主界面
3.主界面状态栏加
正文:
在Java 应用程序中,设计一个美观且实用的主窗口菜单栏是提高用户体验的关键。
为了达到这个目标,我们需要进行以下三个步骤:
首先,我们需要设计Java 主窗口的菜单栏。
菜单栏通常位于窗口的顶部,为用户提供了方便的操作入口。
在设计菜单栏时,我们需要考虑应用程序的功能需求,将相关功能以菜单项的形式展示在菜单栏上。
例如,可以为文件、编辑、视图等操作设计对应的菜单项。
同时,我们还需要为菜单项添加事件监听器,以便在用户点击菜单项时执行相应的操作。
其次,我们需要实现登录界面跳转到主界面的功能。
这一功能可以通过在登录界面添加一个登录按钮来实现。
当用户点击登录按钮后,可以触发一个事件,将用户跳转到主界面。
在实际开发过程中,我们可以使用Java 的Swing 组件库来创建登录界面和主界面,从而方便地实现这一功能。
最后,我们需要为主界面添加状态栏。
状态栏通常位于窗口的底部,可以显示应用程序的一些状态信息,如当前选中的文本、当前时间等。
在Java 中,我们可以使用Swing 的JFrame 类来创建主界面,并通过setStatusText() 方法设置状态栏的文本。
这样,当用户在主界面中执行操作
时,状态栏可以实时显示相应的信息,为用户提供便捷的反馈。
综上所述,通过以上三个步骤,我们可以完成Java 主窗口菜单栏设计、登录界面跳到主界面以及主界面状态栏加的功能。
javaswing做菜单栏

用eclipse开发的一个简单菜单窗口,源代码如下:import java.awt.*;import java.awt.event.*;import javax.swing.*;public class MenuTest {public static void main(String[] args) {MenuJFrame menu = new MenuJFrame();menu.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);menu.setVisible(true);}}class MenuJFrame extends JFrame {private final int Width = 480;private final int Height = 640;private Action saveAction ;private Action saveAsAction;public MenuJFrame(){setSize(Width,Height);JMenu File = new JMenu("file");JMenuItem open = File.add(new TestAction("open"));open.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,Input Event.CTRL_MASK));File.addSeparator();saveAction = new TestAction("save");JMenuItem save = File.add(saveAction);File.addSeparator();saveAsAction = new TestAction("saveAs");JMenuItem saveAs = File.add(saveAsAction);File.addSeparator();File.add(new AbstractAction("exit"){public void actionPerformed(ActionEvent e) {System.exit(0);}});JMenu Edit = new JMenu("Edit");Action cut = new TestAction("cut");cut.putValue(Action.SMALL_ICON, new ImageIcon("cut.gif"));Action copy = new TestAction("copy");cut.putValue(Action.SMALL_ICON, new ImageIcon("copy.gif"));Action paste = new TestAction("paste");cut.putValue(Action.SMALL_ICON, new ImageIcon("copy.gif"));Edit.add(cut);Edit.add(copy);Edit.add(paste);JMenu option = new JMenu("option");final JCheckBoxMenuItem ReadOnly = new JCheckBoxMenuItem("Read-Only");ReadOnly.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e) {boolean control = !(ReadOnly.isSelected());saveAction.setEnabled(control);saveAsAction.setEnabled(control);}});ButtonGroup group = new ButtonGroup();JRadioButtonMenuItem Insert = new JRadioButtonMenuItem("Insert");Insert.setSelected(true);JRadioButtonMenuItem OverType = new JRadioButtonMenuItem("OverType");group.add(Insert);group.add(OverType);JMenu Option = new JMenu("Option");Option.add(ReadOnly);Option.addSeparator();Option.add(Insert);Option.add(OverType);Edit.addSeparator();Edit.add(Option);JMenu Help = new JMenu("Help");Help.setMnemonic('H');JMenuItem Index = new JMenuItem("Index");Index.setMnemonic('I');Help.add(Index);Action AboutAction = new TestAction("AboutAction");AboutAction.putValue(Action.MNEMONIC_KEY,new Integer('A'));Help.add(AboutAction);JMenuBar bar = new JMenuBar();setJMenuBar(bar);bar.add(File);bar.add(Edit);bar.add(Help);JPopupMenu popup = new JPopupMenu();popup.add(cut);popup.add(copy);popup.add(paste);JPanel panel = new JPanel();panel.setComponentPopupMenu(popup);add(panel);}}class TestAction extends AbstractAction{public TestAction(String name){super(name);}public void actionPerformed(ActionEvent e) {System.out.println(getValue()+" selected");}}。
第11章 Swing菜单设计及对话框使用-Java语言GUI程序设计-赵满来-清华大学出版社

11.7.2 四种典型的选项窗格
(1)Message:一般消息对话框 (2)Input:输入对话框 (3)Confirm:确认对话框 (4)Option:选项对话框
chap11项目 book.filereader.TreeFileViewer2
11.5 弹出式菜单
依附于某个组件,鼠标右击该组件后,立 即在鼠标附近出现的一种菜单
JPopupMenu组件是弹出菜单的容器 11.5.1 弹出式菜单的设计 1. 创建弹出式菜单 2. 设置弹出式菜单的invoker属性 3. 向弹出式菜单添加菜单及菜单项 4. 为组件设置弹出菜单
chap11项目book.filereader .TreeFileViewer
11.4 Action接口的使用
Action接口封装事件处理,并连接到多个事件 源
11.4.1 Action接口及其实现 扩展了原始的ActionListener接口,并存储事件
处理器相关的可视属性。 当Action与一个组件相关联时,组件直接由事
11.2.2 复选框菜单项
相当于一个复选框,具有选中或未选中状 态,同时显示合适的状态图标。
【组件面板】上的【Swing菜单】组中的 【菜单项/复选框】组件
selected属性 使用ItemListener监听JCheckBoxMenuItem选
取事件
11.2.3 单选按钮菜单项
相当于一个单选按钮 text、selected和buttonGroup等属性 对单选按钮菜单项的选取会触发选中事件,
11.6.2 应用示例
例11.4 修改例11.3程序,使用对话框选择字 体。
chap11项目 book.filereader.TreeFileViewer2
JAVA菜单和工具栏界面代码设计

实验八菜单和工具栏import java.awt.*;import javax.swing.*;import java.awt.event.*;public class c extends JFrame{private JMenuBar menuBar;private JMenuxtMenu,xyMenu,zyMenu,xsMenu,kcMenu,cjMenu,jsMenu;// private JMenuItem aItem,bItem,cItem,dItem;//private JMenuItem eItem,fItem,gItem,hItem;private JMenuItem iItem,jItem,kItem,lItem;private JMenuItem mItem,nItem,oItem,pItem;private JMenuItem qItem,rItem,sItem,tItem;private JMenuItem uItem,vItem,wItem,xItem;private JMenuItem yItem,zItem,aaItem,bbItem;public c(String account){setTitle("学生管理系统"+"当前管理员为"+account);setSize(500,400);center(this);setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);createMenu();showToolBar();setVisible(true);}//caidanpublic void createMenu(){menuBar=new JMenuBar();//创建菜单栏xtMenu=new JMenu("系统管理");aItem=new JMenuItem("学院设置");bItem=new JMenuItem("专业设置");cItem=new JMenuItem("修改密码");dItem=new JMenuItem("退出");//dItem.setMnemonic('Q');xtMenu.add(aItem);xtMenu.add(bItem);xtMenu.addSeparator();xtMenu.add(cItem);xtMenu.addSeparator();xtMenu.add(dItem);menuBar.add(xtMenu);this.setJMenuBar(menuBar);xyMenu=new JMenu("学院管理"); eItem=new JMenuItem("学院介绍"); fItem=new JMenuItem("学院风貌"); gItem=new JMenuItem("学院大纲"); hItem=new JMenuItem("学院注册"); //dItem.setMnemonic('Q'); xyMenu.add(eItem);xyMenu.add(fItem);xyMenu.addSeparator(); xyMenu.add(gItem);xyMenu.addSeparator(); xyMenu.add(hItem); menuBar.add(xyMenu);this.setJMenuBar(menuBar);zyMenu=new JMenu("专业管理"); iItem=new JMenuItem("专业介绍"); jItem=new JMenuItem("专业课程"); kItem=new JMenuItem("专业方向");lItem=new JMenuItem("专业考证");//dItem.setMnemonic('Q'); zyMenu.add(iItem);zyMenu.add(jItem);zyMenu.addSeparator(); zyMenu.add(kItem);zyMenu.addSeparator();zyMenu.add(lItem);menuBar.add(zyMenu);this.setJMenuBar(menuBar);xsMenu=new JMenu("学生管理"); mItem=new JMenuItem("班级安排"); nItem=new JMenuItem("网上课程"); oItem=new JMenuItem("学生安全介绍"); pItem=new JMenuItem("学生公寓");//dItem.setMnemonic('Q'); xsMenu.add(mItem);xsMenu.add(nItem);xsMenu.addSeparator(); xsMenu.add(oItem);xsMenu.addSeparator();xsMenu.add(pItem); menuBar.add(xsMenu);this.setJMenuBar(menuBar);kcMenu=new JMenu("课程管理"); qItem=new JMenuItem("课程介绍"); rItem=new JMenuItem("课程安排"); sItem=new JMenuItem("课程报名"); tItem=new JMenuItem("课程培训"); //dItem.setMnemonic('Q'); kcMenu.add(qItem);kcMenu.add(rItem);kcMenu.addSeparator(); kcMenu.add(sItem);kcMenu.addSeparator(); kcMenu.add(tItem); menuBar.add(kcMenu);this.setJMenuBar(menuBar);cjMenu=new JMenu("成绩管理"); uItem=new JMenuItem("查看分数"); vItem=new JMenuItem("查看试卷");wItem=new JMenuItem("学科学分"); xItem=new JMenuItem("等级查看"); //dItem.setMnemonic('Q'); cjMenu.add(uItem);cjMenu.add(vItem);cjMenu.addSeparator(); cjMenu.add(wItem);cjMenu.addSeparator(); cjMenu.add(xItem);menuBar.add(cjMenu);this.setJMenuBar(menuBar);jsMenu=new JMenu("教师管理"); yItem=new JMenuItem("教师介绍"); zItem=new JMenuItem("教师课程"); aaItem=new JMenuItem("修改信息"); bbItem=new JMenuItem("工资明细"); //dItem.setMnemonic('Q'); jsMenu.add(yItem);jsMenu.add(zItem);jsMenu.addSeparator(); jsMenu.add(aaItem);jsMenu.addSeparator();jsMenu.add(bbItem);menuBar.add(jsMenu);this.setJMenuBar(menuBar);}public void showToolBar(){JToolBar jt=new JToolBar();JButton sys_setBtn=new JButton(new ImageIcon(this.getClass().getResource("系统设置.png")));sys_setBtn.setToolTipText("系统设置");JButton s_queryBtn=new JButton(new ImageIcon(this.getClass().getResource("成绩查询.png")));s_queryBtn.setToolTipText("成绩查询");JButton stuinf_inputBtn=new JButton(new ImageIcon (this.getClass().getResource("学生信息录入.png")));stuinf_inputBtn.setToolTipText("系统设置");JButton sys_exitBtn=new JButton(new ImageIcon(this.getClass().getResource("退出系统.png")));sys_exitBtn.setToolTipText("退出系统");jt.add(sys_setBtn);jt.addSeparator();jt.add(s_queryBtn);jt.addSeparator();jt.add(stuinf_inputBtn);jt.addSeparator();jt.add(sys_exitBtn);this.add(jt,BorderLayout.NORTH);}public void center(JFrame frame){Toolkit toolkit=Toolkit.getDefaultToolkit();Dimension dim=toolkit.getScreenSize();int screenWidth=dim.width;int screenHeight=dim.height;int w=frame.getWidth();int h=frame.getHeight();int x=(screenWidth-w)/2;int y=(screenHeight-h)/2;frame.setLocation(x,y);}public static void main(String[]args){new c("JOJO");}}。
JAVA:简单添加菜单界面(swing)

JAVA:简单添加菜单界⾯(swing) 1package com.le.menu;23import java.awt.Color;4import java.awt.Container;5import java.awt.FlowLayout;6import java.awt.GridLayout;7import java.awt.event.ActionEvent;8import java.awt.event.ActionListener;9import java.awt.event.ItemEvent;10import java.awt.event.ItemListener;11import java.awt.event.KeyEvent;1213import javax.swing.JFrame;14import javax.swing.JLabel;15import javax.swing.JMenu;16import javax.swing.JMenuBar;17import javax.swing.JMenuItem;18import javax.swing.JPanel;19import javax.swing.JRadioButtonMenuItem;2021public class MenuManagerShow {22private MenuManagerShow() {23 init();24 }2526public static void main(String[] args) {27 MenuManagerShow menuManager = new MenuManagerShow();28 menuManager.show();29 }3031private void show() {3233 }3435class MenuItemListener implements ActionListener {36 @Override37public void actionPerformed(ActionEvent e) {38 statusLabel.setText("JMenu Item clicked:" + e.getActionCommand() + ".");39 }40 }4142/**43 * 给主窗⼝设置背景⾊44 *45 * @param mainFrame46 * 主窗⼝47 * @see分析:JFrame默认使⽤流式布局管理器(FlowLayout)将整个窗体进⾏覆盖操作,<br>48 * 设置的颜⾊被布局管理器给覆盖住了,所以⽆法看见。
Swing菜单与工具栏(六)

public JButton add(Action action);public void addSeparator();public void addSeparator(Dimension size);
当使用JToolBar的add(Action)方法时,所添加的Action被封闭在一个JButton对象中。这与向JMenu或是JPopupMenu组件添加Action不同,在后一种情况中,所添加的是JMenuItem对象。对于JMenu与JPopupMenu,以这种方式添加Action是类的Javadoc中所不推荐的。对于分隔符,如果我们没有指定尺寸,所安装的观感会强制默认的尺寸设置。
rollover属性定义了当用户在工具栏的不同组件上移动时与观感特定的行为。这种行为涉及到颜色与边框的不同。
6.3.4 处理JToolBar事件并没有特定于JToolBar的事件。我们需要将监听器关联到我们需要响应用户交互的JToolBar上的每一项上。当然,JToolBar是一个Container,所以我们也可以监听其事件。
表6-16中列出了JToolBar的UIResource相关的属性。对于JToolBar组件,有22个不同的属性。
JToolBar UIResource元素
属性字符串
对象类型
ToolBar.actionMap
ActionMap
ToolBar.ancestorInputMap
java菜单栏课程设计
java菜单栏课程设计一、课程目标知识目标:1. 理解Java菜单栏的基本概念,掌握菜单栏的组成和功能;2. 学会使用Java Swing库中的菜单栏组件,如JMenuBar、JMenu和JMenuItem;3. 掌握在Java图形用户界面(GUI)中添加、删除和修改菜单项的方法;4. 了解菜单栏事件处理机制,能编写简单的菜单栏交互程序。
技能目标:1. 能够独立设计并实现一个具有基本功能的Java菜单栏;2. 学会运用菜单栏进行界面布局和用户交互,提高程序界面的友好性;3. 掌握调试和修复菜单栏相关代码错误的方法,提高问题解决能力。
情感态度价值观目标:1. 培养学生对Java编程的兴趣,激发学习热情;2. 培养学生的团队协作能力,学会在项目中进行分工与协作;3. 增强学生的创新意识,鼓励尝试不同的菜单栏设计方案,提升审美观。
分析课程性质、学生特点和教学要求,本课程目标旨在让学生掌握Java菜单栏的相关知识,培养其编程实践能力和创新思维。
通过本课程的学习,学生将能够独立设计并实现功能丰富的Java菜单栏,提高图形用户界面的开发能力。
同时,注重培养学生的团队协作和情感态度,使其在学习过程中形成积极向上的心态。
后续教学设计和评估将围绕具体的学习成果展开,确保课程目标的实现。
二、教学内容1. Java菜单栏基本概念:介绍菜单栏的定义、作用和组成,包括JMenuBar、JMenu、JMenuItem等组件;教材章节:第三章第二节2. Java菜单栏组件的使用:讲解如何使用Java Swing库中的菜单栏组件,包括创建、添加菜单项和设置菜单项属性;教材章节:第三章第三节3. 菜单栏事件处理:介绍菜单栏事件处理机制,包括监听器接口、事件处理方法以及常用的菜单栏事件类型;教材章节:第三章第四节4. Java菜单栏实战案例:设计一个简单的菜单栏应用程序,涵盖菜单栏的创建、事件处理和界面布局;教材章节:第三章实战案例5. 调试与优化:教授如何调试和修复菜单栏相关代码错误,提高程序稳定性和用户体验;教材章节:第三章第五节6. 创新实践:鼓励学生尝试不同的菜单栏设计方案,培养创新意识和审美观;教材章节:第三章第六节教学内容安排和进度:第1课时:Java菜单栏基本概念第2课时:Java菜单栏组件的使用第3课时:菜单栏事件处理第4课时:实战案例讲解与演示第5课时:调试与优化第6课时:创新实践与展示三、教学方法1. 讲授法:通过系统的讲解,使学生掌握Java菜单栏的基本概念、组件使用和事件处理机制。
Java Swing-图形化界面-菜单组件
//菜单条、菜单、菜单项是窗口常用的组件,菜单放在菜单条里,菜单项放在菜单里/**JMenuBar菜单条* JComponent类的子类JMenubar是负责创建菜单条的,即JMenuBar的一个实例就是一个菜单条。
* JFrame类有一个将菜单条放置到窗口中的方法:* public void setJMenuBar(JMenuBar mmenubar);* 该方法将菜单条添加到窗口的菜单条区域(注意:只能向窗口添加一个菜单条)*//**JMenu菜单* JComponent的子类JMenu是负责创建菜单的,即JMenu的一个实例就是一个菜单。
* JMenu类的主要方法:* JMenu(String s)-建立一个指定标题菜单,标题由参数s确定*public void add(MenuItem item)----向菜单增加由参数item指定的菜单选择对象*public void add(String s)----向菜单增加指定的选项*public JMenuItem getItem(int n)----得到指定索引处的菜单选项*public int getItemCount()----得到菜单选项数目*//**JMenuItem菜单项* JMenuItem是JMenu的父类,该类负责创建菜单项的,即JMenuItem的一个实例就是一个菜单项。
菜单项放在菜单里。
* JMenuItem类的主要方法:* JMenuItem(String s)----构造有标题的菜单项* JMenuItem(String text,Icon icon)----构造有标题和图标的菜单项* public void setEnabled(boolean b)----设置当前菜单项是否可被选择* public String getLabel()----得到菜单项的名字* public void setAccelerator(KeyStroke keyStroke)----为菜单项设置快捷键* 注:为向该方法的参数传递一个KeyStroke对象,可以使用KeyStroke类的类方法public static Keystroke* getKeyStroke(char keychar)返回一个KeyStroke对象;也可以使用KeyStroke类的类方法public static* Keystroke getKeyStroke(int keyCode,int modifiers)返回一个Keystroke对象,其中参数KeyCode的* 取值范围为KeyEvent.VK_A~KeyEvent.VK_Z,modifiers的取值如下:InputEvent.ALT_MASK,* InputEvent.CTRL_MASK,InputEvent.SHIFT_MASK*//**嵌入子菜单* JMenu是JMenuItem的子类,因此菜单项本身还可以是一个菜单,这样的菜单项称为子菜单。
实验21JavaSwing的菜单栏
实验21 Java Swing的菜单和工具栏1、主要教学目标(1)掌握Java的Java Swing的菜单组件;(2)理解Java Swing的JMenu;(3)理解JFrame类菜单方法。
2、重点内容掌握JFrame类常见的菜单方法和定义。
讲授内容一、Java Swing的菜单栏§1.1 菜单栏菜单栏是一组命令按钮,位于菜单下。
在Java中Swing中,实现一个菜单栏,需要使用三个对象。
一个JMenuBar对象,一个 JMenu和JMenuItem对象。
1、新建一个含有MENU的JFrame,包括一个JMenu对象,JMenuBar对象和JMenuItem对象,import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.KeyEvent;import javax.swing.JFrame;import javax.swing.JMenu;import javax.swing.JMenuBar;import javax.swing.JMenuItem;import javax.swing.SwingUtilities;class Menu21_1 extends JFrame{public Menu21_1(){JMenuBar menubar = new JMenuBar();JMenu file = new JMenu("File");file.setMnemonic(KeyEvent.VK_F);JMenuItem fileitem = new JMenuItem("Exit");fileitem.setMnemonic(KeyEvent.VK_E);fileitem.setToolTipText("Exit Application");fileitem.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){System.exit(0);}});file.add(fileitem);menubar.add(file);setJMenuBar(menubar);setSize(500,500);setLocationRelativeTo(null);setDefaultCloseOperation(EXIT_ON_CLOSE);}}public class App21_1{public static void main(String[] args){SwingUtilities.invokeLater(new Runnable(){public void run(){Menu21_1 ex = new Menu21_1();ex.setVisible(true);}});}}图1:显示菜单import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.KeyEvent;import javax.swing.ImageIcon;import javax.swing.JFrame;import javax.swing.JMenu;import javax.swing.JMenuBar;import javax.swing.JMenuItem;import javax.swing.SwingUtilities;class Menu21_2 extends JFrame {public Menu21_2() {《Java程序设计》第二十一讲教案initUI();}public final void initUI() {JMenuBar menubar = new JMenuBar();ImageIcon icon = new ImageIcon(getClass().getResource("exit.png"));JMenu file = new JMenu("File");file.setMnemonic(KeyEvent.VK_F);JMenuItem eMenuItem = new JMenuItem("Exit", icon);eMenuItem.setMnemonic(KeyEvent.VK_E);eMenuItem.setToolTipText("Exit application");eMenuItem.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent event) {System.exit(0);}});file.add(eMenuItem);menubar.add(file);setJMenuBar(menubar);setTitle("Simple menu");setSize(300, 200);setLocationRelativeTo(null);setDefaultCloseOperation(EXIT_ON_CLOSE);}}public class App21_2{public static void main(String[] args) {SwingUtilities.invokeLater(new Runnable() {public void run() {Menu21_2 ex = new Menu21_2();ex.setVisible(true);}});}}显示一个菜单,其中一个项目。
JavaSwing中的下拉式菜单...
JavaSwing中的下拉式菜单...菜单是GUI中最常⽤的组件,菜单不是Component类的⼦类,不能放置在普通容器中,不受布局管理器的约束,只能放置在菜单栏中.菜单组件由菜单栏 (MenuBar)、菜单(Menu)和菜单项(MenuItem)三部分组成。
⼀个菜单栏由若⼲个菜单组成,⼀个菜单⼜由若⼲个菜单项组成。
⼀般菜单栏放 Frame 窗⼝中,只要调⽤ Frame 类的 setMenuBar()⽅法即可。
常⽤的菜单有:下拉式菜单和弹出式菜单(独⽴显⽰,可出现在任意地⽅).⼀:下拉式菜单的创建步骤:1.创建⼀个菜单栏。
2.调⽤ Frame 的 setMenuBar()⽅法将菜单栏加⼊ Frame 中。
3.分别创建若⼲个 Menu 对象,并加⼊ MenuBar 中。
4.对于每个 Menu 对象,分别创建若⼲个 MenuItem 对象,并加⼊ Menu 中。
实例:复制代码代码如下:import java.awt.*;public class MenuDemo {Frame f;MenuBar mb;Menu menuFile;MenuItem mItemNew, mItemOpen, mItemSave;MenuDemo() {f = new Frame("我的菜单实例");f.setBounds(300, 100, 400, 300);mb = new MenuBar(); // 创建菜单栏MenuBarmenuFile = new Menu("⽂件");mItemNew = new MenuItem("新建");mItemOpen = new MenuItem("打开");menuFile.add(mItemNew);mItemSave = new MenuItem("保存");menuFile.add(mItemOpen);// 加⼊分割线menuFile.addSeparator();menuFile.add(mItemSave);mb.add(menuFile);// 菜单栏中加⼊“⽂件”菜单// setMenuBar:将此窗体的菜单栏设置为指定的菜单栏。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
用eclipse开发的一个简单菜单窗口,源代码如下:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class MenuTest {
public static void main(String[] args) {
MenuJFrame menu = new MenuJFrame();
menu.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
menu.setVisible(true);
}
}
class MenuJFrame extends JFrame {
private final int Width = 480;
private final int Height = 640;
private Action saveAction ;
private Action saveAsAction;
public MenuJFrame(){
setSize(Width,Height);
JMenu File = new JMenu("file");
JMenuItem open = File.add(new TestAction("open"));
open.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,Input Event.CTRL_MASK));
File.addSeparator();
saveAction = new TestAction("save");
JMenuItem save = File.add(saveAction);
File.addSeparator();
saveAsAction = new TestAction("saveAs");
JMenuItem saveAs = File.add(saveAsAction);
File.addSeparator();
File.add(new AbstractAction("exit"){
public void actionPerformed(ActionEvent e) {
System.exit(0);
}});
JMenu Edit = new JMenu("Edit");
Action cut = new TestAction("cut");
cut.putValue(Action.SMALL_ICON, new ImageIcon("cut.gif"));
Action copy = new TestAction("copy");
cut.putValue(Action.SMALL_ICON, new ImageIcon("copy.gif"));
Action paste = new TestAction("paste");
cut.putValue(Action.SMALL_ICON, new ImageIcon("copy.gif"));
Edit.add(cut);
Edit.add(copy);
Edit.add(paste);
JMenu option = new JMenu("option");
final JCheckBoxMenuItem ReadOnly = new JCheckBoxMenuItem("Read-Only");
ReadOnly.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
boolean control = !(ReadOnly.isSelected());
saveAction.setEnabled(control);
saveAsAction.setEnabled(control);
}
});
ButtonGroup group = new ButtonGroup();
JRadioButtonMenuItem Insert = new JRadioButtonMenuItem("Insert");
Insert.setSelected(true);
JRadioButtonMenuItem OverType = new JRadioButtonMenuItem("OverType");
group.add(Insert);
group.add(OverType);
JMenu Option = new JMenu("Option");
Option.add(ReadOnly);
Option.addSeparator();
Option.add(Insert);
Option.add(OverType);
Edit.addSeparator();
Edit.add(Option);
JMenu Help = new JMenu("Help");
Help.setMnemonic('H');
JMenuItem Index = new JMenuItem("Index");
Index.setMnemonic('I');
Help.add(Index);
Action AboutAction = new TestAction("AboutAction");
AboutAction.putValue(Action.MNEMONIC_KEY,new Integer('A'));
Help.add(AboutAction);
JMenuBar bar = new JMenuBar();
setJMenuBar(bar);
bar.add(File);
bar.add(Edit);
bar.add(Help);
JPopupMenu popup = new JPopupMenu();
popup.add(cut);
popup.add(copy);
popup.add(paste);
JPanel panel = new JPanel();
panel.setComponentPopupMenu(popup);
add(panel);
}
}
class TestAction extends AbstractAction{
public TestAction(String name){
super(name);
}
public void actionPerformed(ActionEvent e) {
System.out.println(getValue()+" selected");
}
}。