您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

Java GUI编程菜单组件怎么用

2025/11/7 23:48:35发布31次查看
下表中给出常见的菜单相关组件:
菜单组件名称功能
menubar 菜单条 , 菜单的容器 。
menu 菜单组件 , 菜单项的容器 。 它也是menultem的子类 ,所以可作为菜单项使用
popupmenu 上下文菜单组件(右键菜单组件)
menultem 菜单项组件 。
checkboxmenuitem 复选框菜单项组件
下图是常见菜单相关组件集成体系图:
菜单相关组件使用:
1.准备菜单项组件,这些组件可以是menuitem及其子类对象
2.准备菜单组件menu或者popupmenu(右击弹出子菜单),把第一步中准备好的菜单项组件添加进来;
3.准备菜单条组件menubar,把第二步中准备好的菜单组件menu添加进来;
4.把第三步中准备好的菜单条组件添加到窗口对象中显示。
小技巧:
1.如果要在某个菜单的菜单项之间添加分割线,那么只需要调用menu的add(new menuitem(-))即可。
2.如果要给某个菜单项关联快捷键功能,那么只需要在创建菜单项对象时设置即可,例如给菜单项关联 ctrl+shif+/ 快捷键,只需要:new menuitem(菜单项名字,new menushortcut(keyevent.vk_q,true);
案例1:
使用awt中常用菜单组件,完成下图效果
演示代码1:
import java.awt.*;import java.awt.event.actionevent;import java.awt.event.actionlistener;public class simplemenu { //创建窗口 private frame frame = new frame("这里测试菜单相关组件"); //创建菜单条组件 private menubar menubar = new menubar(); //创建文件菜单组件 private menu filemenu = new menu("文件"); //创建编辑菜单组件 private menu editmenu = new menu("编辑"); //创建新建菜单项 private menuitem newitem = new menuitem("新建"); //创建保存菜单项 private menuitem saveitem = new menuitem("保存"); //创建退出菜单项 private menuitem exititem = new menuitem("退出"); //创建自动换行选择框菜单项 private checkboxmenuitem autowrap = new checkboxmenuitem("自动换行"); //创建复制菜单项 private menuitem copyitem = new menuitem("复制"); //创建粘贴菜单项 private menuitem pasteitem = new menuitem("粘贴"); //创建格式菜单 private menu formatmenu = new menu("格式"); //创建注释菜单项 private menuitem commentitem = new menuitem("注释"); //创建取消注释菜单项 private menuitem cancelitem = new menuitem("取消注释"); //创建一个文本域 private textarea ta = new textarea(6, 40); public void init(){ //定义菜单事件监听器 actionlistener listener = new actionlistener() { @override public void actionperformed(actionevent e) { string command = e.getactioncommand(); ta.append("单击“"+command+"”菜单\n"); if (command.equals("退出")){ system.exit(0); } } }; //为注释菜单项和退出菜单项注册监听器 commentitem.addactionlistener(listener); exititem.addactionlistener(listener); //为文件菜单filemenu添加菜单项 filemenu.add(newitem); filemenu.add(saveitem); filemenu.add(exititem); //为编辑菜单editmenu添加菜单项 editmenu.add(autowrap); editmenu.add(copyitem); editmenu.add(pasteitem); //为格式化菜单formatmenu添加菜单项 formatmenu.add(commentitem); formatmenu.add(cancelitem); //将格式化菜单添加到编辑菜单中,作为二级菜单 editmenu.add(new menuitem("-")); editmenu.add(formatmenu); //将文件菜单和编辑菜单添加到菜单条中 menubar.add(filemenu); menubar.add(editmenu); //把菜单条设置到frame窗口上 frame.setmenubar(menubar); //把文本域添加到frame中 frame.add(ta); //设置frame最佳大小并可见 frame.pack(); frame.setvisible(true); } public static void main(string[] args) { new simplemenu().init(); }}
案例2:
通过popupmenu实现下图效果:
实现思路:
1.创建popubmenu菜单组件;
2.创建多个menuitem菜单项,并添加到popupmenu中;
3.将popupmenu添加到目标组件中;
对于需要显示 popubmenu 菜单的组件,注册鼠标监听器事件。当监听到用户释放右键时,弹出菜单。
演示代码2:
import java.awt.*;import java.awt.event.mouseadapter;import java.awt.event.mouseevent;public class popupmenutest { private frame frame = new frame("这里测试popupmenu"); // 创建popubmenu菜单 private popupmenu popupmenu = new popupmenu(); // 创建菜单条 private menuitem commentitem = new menuitem("注释"); private menuitem cancelitem = new menuitem("取消注释"); private menuitem copyitem = new menuitem("复制"); private menuitem pasteitem = new menuitem("保存"); // 创建一个文本域 private textarea ta = new textarea("我爱中华!!!", 6, 40); // 创建一个panel private panel panel = new panel(); public void init() { // 把菜单项添加到popupmenu中 popupmenu.add(commentitem); popupmenu.add(cancelitem); popupmenu.add(copyitem); popupmenu.add(pasteitem); // 设置panel大小 panel.setpreferredsize(new dimension(300, 100)); // 把popupmenu添加到panel中 panel.add(popupmenu); // 为panel注册鼠标事件 panel.addmouselistener(new mouseadapter() { @override public void mousereleased(mouseevent e) { boolean flag = e.ispopuptrigger(); // 判断当前鼠标操作是不是触发popupmenu的操作 if (flag) { // 让popupmenu显示在panel上,并且跟随鼠标事件发生的地方显示 popupmenu.show(panel, e.getx(), e.gety()); } } }); // 把ta添加到frame中间区域中 frame.add(ta); // 把panel添加到frame底部 frame.add(panel, borderlayout.south); // 设置frame最佳大小,并可视; frame.pack(); frame.setvisible(true); } public static void main(string[] args) { new popupmenutest().init(); }}
以上就是java gui编程菜单组件怎么用的详细内容。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product