第9章 Swing菜单

Swing菜单是我们经常用到的一种控件,NetBeans对菜单进行了很好的封装,是我们应用起来非常方便。下面,我们就来简单的了解一下Swing菜单。

菜单:Jmenu

菜单项:JmenuItem

复选菜单项:JcheckBocMenuItem

单选菜单项:JradioButtonMenuItem

弹出式菜单:JpopupMenu

下面来看一个简单的菜单程序:

代码:

import java.awt.*;

import javax.swing.*;

public class DemoSimpleMenu extends JFrame{

JMenuBar jMenuBarOne;

JMenu fileMenu,editMenu,newFileMenu;

JMenuItem openFile,closeFile;

JCheckBoxMenuItem newFileTxt,newFileJava;

JRadioButtonMenuItem copyFile,pasteFile;

ButtonGroup buttonEdit;

/** Creates a new instance of DemoSimpleMenu */

public DemoSimpleMenu() {

jMenuBarOne=new JMenuBar();

buttonEdit=new ButtonGroup();

fileMenu=new JMenu("文件");

editMenu=new JMenu("编辑");

newFileMenu=new JMenu("新建文件");

openFile=new JMenuItem("打开文件");

closeFile=new JMenuItem("关闭文件");

newFileTxt=new JCheckBoxMenuItem("文本文件");

newFileJava=new JCheckBoxMenuItem("Java文件");

copyFile=new JRadioButtonMenuItem("复制");

pasteFile=new JRadioButtonMenuItem("粘贴");

buttonEdit.add(copyFile);

buttonEdit.add(pasteFile);

this.setJMenuBar(jMenuBarOne);

jMenuBarOne.add(fileMenu);

jMenuBarOne.add(editMenu);

fileMenu.add(openFile);

fileMenu.add(closeFile);

fileMenu.addSeparator();

fileMenu.add(newFileMenu);

newFileMenu.add(newFileTxt);

newFileMenu.add(newFileJava);

editMenu.add(copyFile);

editMenu.add(pasteFile);

this.setTitle("菜单的简单使用");

this.setBounds(100,100,250,150);

this.setVisible(true);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

public static void main(String[] args) {

new DemoSimpleMenu();

}

}

好的,现在大家已经能够明白菜单的层次结构了,那么,我们下面再看一个例子。关于菜单的各种方法,在此不作多说,在相关的帮助文档上,都可以很清楚的查到。

在NetBeans中使用菜单控件

在添加菜单栏,然后添加菜单,然后在导航窗口右击菜单,添加,选择要添加的菜单项,或者子菜单。

然后在相应的菜单项上右击,可以选择事件,添加如下代码:

JFileChooser fileChooser=new JFileChooser();

fileChooser.showOpenDialog(this);//打开文件菜单项

JFileChooser fileChooser=new JFileChooser();

fileChooser.showSaveDialog(this);//保存文件菜单项

这样,我们就基本上掌握了菜单控件的开发方法,下面,我们要来讲解一个关于弹出式菜单的例子:

代码:

public class DemoJPopupMenu extends JFrame{

JMenu fileMenu;

JPopupMenu jPopupMenuOne;

JMenuItem openFile,closeFile,exit;

JRadioButtonMenuItem copyFile,pasteFile;

ButtonGroup buttonGroupOne;

/** Creates a new instance of DemoJPopupMenu */

public DemoJPopupMenu() {

jPopupMenuOne=new JPopupMenu();

buttonGroupOne=new ButtonGroup();

fileMenu=new JMenu("文件");

openFile=new JMenuItem("打开");

closeFile=new JMenuItem("关闭");

fileMenu.add(openFile);

fileMenu.add(closeFile);

jPopupMenuOne.add(fileMenu);

jPopupMenuOne.addSeparator();

copyFile=new JRadioButtonMenuItem("复制");

pasteFile=new JRadioButtonMenuItem("粘贴");

buttonGroupOne.add(copyFile);

buttonGroupOne.add(pasteFile);

jPopupMenuOne.add(copyFile);

jPopupMenuOne.add(pasteFile);

jPopupMenuOne.addSeparator();

exit=new JMenuItem("退出");

jPopupMenuOne.add(exit);

MouseListener popupListener=new PopupListener(jPopupMenuOne);

this.addMouseListener(popupListener);

this.setTitle("弹出式菜单的简单使用");

this.setBounds(100,100,250,150);

this.setVisible(true);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

public static void main(String[] args) {

new DemoJPopupMenu();

}

class PopupListener extends MouseAdapter{

JPopupMenu popupMenu;

PopupListener(JPopupMenu popupMenu){

this.popupMenu=popupMenu;

}

public void mousePressed(MouseEvent e){

showPopupMenu(e);

}

public void mouseReleased(MouseEvent e){

showPopupMenu(e);

}

private void showPopupMenu(MouseEvent e){

if(e.isPopupTrigger()){

popupMenu.show(e.getComponent(),e.getX(),e.getY());

}

}

}

}

转载于:https://blog.51cto.com/wwssttt/381902

NetBeans使用介绍(五)相关推荐

  1. XMOVE3.0手持终端——软件介绍(五):在2KB内存的单片机上实现的T9中文输入法

    编者注: X-MOVE是作者在业余时间于2010年6月份启动的以运动传感开发,算法和应用的平台,目前已经发展了三个版本,第四版的开发接近尾声.发布在博客园仅为交流技术,不存在商业目的,作者保留一切权利 ...

  2. python学会了能做什么-学会Python后都能做什么?介绍五种Python的实用场景

    如今,越来越多的人加入到学习Python的队伍当中. 有的学习者是设计师,学习Python可以帮助他们查找更多的海报案例;有的学习者是大学生,学习Python可以帮助他们更好地查阅论文资料;还有的学习 ...

  3. 学python可以做什么-学会Python后都能做什么?介绍五种Python的实用场景

    如今,越来越多的人加入到学习Python的队伍当中. 有的学习者是设计师,学习Python可以帮助他们查找更多的海报案例;有的学习者是大学生,学习Python可以帮助他们更好地查阅论文资料;还有的学习 ...

  4. 新颖的自我介绍_有创意的自我介绍五篇

    第1篇:有创意的自我介绍五篇 一个成功自我介绍可以给人留下一个好印象.那么,怎么来说,怎么自我介绍比较有创意呢?下面小编搜集了有创意的自我介绍,供大家参考! 我叫xx,今年xx岁,爱好是听歌和看电影, ...

  5. python使用rabbitMQ介绍五(话题模式)

    一.模式介绍 话题模式(Topic)基本思想和路由模式是一样的,只不过路由键支持模糊匹配,符号"#"匹配一个或多个词,符号"*"匹配不多不少一个词 话题模式相当 ...

  6. Android中级控件介绍(五)

    一.相对布局RelativeLayout RelativeLayout的下级视图的位置是相对位置,得有具体的参照物才能确定最终位置. 如果不设定下级视图的参照物,那么下级视图默认显示在Relative ...

  7. 阿里云 Aliplayer高级功能介绍(五):多语言

    基本介绍 Aliplayer默认支持中文和英文,并且依赖于浏览器的语言设置自动启用中文或英文资源, 除了支持这两种资源外,还提供自定义语言的形式,支持其他国际语言,另外Aliplayer还支持点播服务 ...

  8. 韩剧神秘男女剧情分集介绍五

    秘密男女分集剧情介绍第21集介绍   文女士來到雅美家和雅美說起結婚的事情英芝聽得一清二楚此時俊宇為了向英芝表示歉意親自動手做了一張大書桌送給她但書桌太大放不進房間在一陣忙亂之後英芝對俊宇說彼此並不適 ...

  9. 介绍五种“去火”食疗法

    一.喝莲子汤去心火 表现症状:分虚实两种,虚火表现为低热.盗汗.心烦.口干等:实火表现为反复口腔溃疡.口干.小便短赤.心烦易怒等. 食疗法:莲子30克(不去莲心),桅子15克(用纱布包扎),加冰糖适量 ...

最新文章

  1. 思科无线AP胖瘦互转
  2. c++带成员指针使用
  3. java平均差_如何做好描述统计分析
  4. Sharepoint学习笔记—习题系列--70-573习题解析 -(Q136-Q138)
  5. Flutter进阶—质感设计之模态底部面板
  6. 人工智能、机器学习及深度学习视频教程大合集
  7. ibatis结果集resultClass的几种类型
  8. layui模板引擎不生效解决方案
  9. js(javascript)和jq(jquery)常见问题(持续更新)
  10. ISP、IAP、DFU和bootloader
  11. 【PAT】A1107 Social Clusters (30分)
  12. Python Web学习笔记,电影网站
  13. 数据融合(data fusion)原理与方法
  14. 嗯,比较准确~~~~~~星座这东西……
  15. 元宇宙带来的游戏变革会是怎样的?
  16. ubuntu18.04修改屏幕休眠时间
  17. 操作:FTP服务器的搭建
  18. Praat脚本-010 | 提取时长和共振峰
  19. luogu p4995 跳跳
  20. WebRTC回声抵消模块简要分析

热门文章

  1. Adobe源码泄漏?3行代码搞定,Flash动画无缝导入Android/iOS/cocos2dx(一)
  2. php解决 mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysq
  3. iOS解决键盘阻挡输入框
  4. golang strings.Fields 使用
  5. ABP理论学习之数据传输对象(DTO)
  6. php.ini 中开启短标签
  7. Android -- Annotation(注解)原理详解及常见框架应用
  8. php源码安全加密之PHP混淆算法.
  9. Delphi XE5 常用功具与下载
  10. MySQL 用户与授权管理详解