java 如何用用数组设置一个窗体的三级菜单? 20

importjavax.swing.*;importjava.awt.*;publicclass三级菜单extendsJFrame{public三级菜单(){initia... import javax.swing.*;import java.awt.*;public class 三级菜单 extends JFrame{ public 三级菜单(){ initialization(); setTitle("三级菜单"); setBounds(300,300,400,300); setLayout(null); Container c=getContentPane(); setVisible(true); setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); } public void initialization(){ String[] menubar={"编辑","帮助"}; String[][] submenu={{"复制","粘贴","","历史记录"},{"关于三级菜单"}}; String[] threemenu={"撤消","恢复"}; JMenuBar jmenubar=new JMenuBar();//创建菜单栏 for(int i=0;i<menubar.length;i++){ JMenu jmenu=new JMenu(menubar[i]); jmenubar.add(jmenu); for(int j=0;j<submenu[i].length;j++){ if("".equals(submenu[i][j])){ jmenu.addSeparator();//添加一条横线 }else{ JMenuItem jmenuitem=new JMenuItem(submenu[i][j]); jmenu.add(jmenuitem); } for(int k=0;k<threemenu.length;k++){ JMenuItem menu3=new JMenuItem(threemenu[k]); jmenuitem.add(menu3); } } } this.setJMenuBar(jmenubar);//JFrame加菜单栏时用setJmenuBar(),不用add / } public static void main(String[] args){ new 三级菜单(); }} 展开
 我来答
xvxvnmnm
2019-12-23 · TA获得超过223个赞
知道小有建树答主
回答量:189
采纳率:100%
帮助的人:100万
展开全部
这不简单吗,直接循环加上去就可以了。
import javax.swing.*;

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class List extends JFrame{
public List(){
initialization();
setTitle("三级菜单");
setBounds(300,300,400,300);
setLayout(null);
Container c=getContentPane();
setVisible(true);
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
public void initialization(){
JMenu jmenuTwo=null;
String[] menubar={"编辑","帮助"};
String[][] submenu={{"复制","粘贴","","历史记录"},{"关于三级菜单"}};
String[] threemenu={"撤消","恢复"};
JMenuBar jmenubar=new JMenuBar();//创建菜单栏
for(int i=0;i<menubar.length;i++){
JMenu jmenu=new JMenu(menubar[i]);
jmenubar.add(jmenu);
for(int j=0;j<submenu[i].length;j++){
if("".equals(submenu[i][j])){
jmenu.addSeparator();//添加一条横线
}else{
jmenuTwo=new JMenu(submenu[i][j]);
jmenu.add(jmenuTwo);
if(j<2&&i==0){
for(int k=0;k<threemenu.length;k++){
JMenuItem menu3=new JMenuItem(threemenu[k]);
jmenuTwo.add(menu3);
}
}
}
}
this.setJMenuBar(jmenubar);//JFrame加菜单栏时用setJmenuBar(),不用add /
}
}
public static void main(String[] args){
new List();
}
}
云南新华电脑学校
2019-11-24 · 百度认证:云南新华电脑职业培训学校官方账号
云南新华电脑学校
云南新华电脑学校是经云南省教育厅批准成立的省(部)级重点计算机专业学校,采用三元化管理模式,教学设备先进,师资雄厚学生毕业即就业,学院引进了电商企业入驻,创建心为电商创业园区,实现在校即创业
向TA提问
展开全部
ublic Comparator<Menu> order(){ Comparator<Menu> comparator = new Comparator<Menu>() { @Override public int compare(Menu o1, Menu o2) { if(o1.getOrder() != o2.getOrder()){ return o1.getOrder() - o2.getOrder(); } return 0; } }; return comparator; }
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
l7722526
2019-11-11 · TA获得超过2.7万个赞
知道大有可为答主
回答量:2.8万
采纳率:84%
帮助的人:3824万
展开全部

代码演示:

package com.demo;

import java.awt.event.*;

import javax.swing.*;

public class CanDanLan extends JFrame {

/**
*
*/
private static final long serialVersionUID = 1L;

    public static void main(String args[]) {
CanDanLan frame = new CanDanLan();
frame.setVisible(true);
}

public CanDanLan() {
super();
setTitle("创建菜单栏");
setBounds(100, 100, 500, 375);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

JMenuBar menuBar = new JMenuBar();// 创建菜单栏对象
setJMenuBar(menuBar);// 将菜单栏对象添加到窗体的菜单栏中

JMenu menu = new JMenu("菜单名称");// 创建菜单对象
menuBar.add(menu);// 将菜单对象添加到菜单栏对象中

JMenuItem menuItem = new JMenuItem("菜单项名称");// 创建菜单项对象
menuItem.addActionListener(new ItemListener());// 为菜单项添加事件监听器
menu.add(menuItem);// 将菜单项对象添加到菜单对象中

JMenu sonMenu = new JMenu("子菜单名称");// 创建菜单的子菜单对象
menu.add(sonMenu);// 将子菜单对象添加到上级菜单对象中

JMenuItem sonMenuItem = new JMenuItem("子菜单项名称");// 创建子菜单的菜单项对象
sonMenuItem.addActionListener(new ItemListener());// 为菜单项添加事件监听器
sonMenu.add(sonMenuItem);// 将子菜单的菜单项对象添加到子菜单对象中

JMenu menu2 = new JMenu("菜单名称2");// 创建菜单对象
menuBar.add(menu2);// 将菜单对象添加到菜单栏对象中

JMenuItem menuItem2 = new JMenuItem("菜单项名称2");// 创建菜单项对象
menuItem2.addActionListener(new ItemListener());// 为菜单项添加事件监听器
menu2.add(menuItem2);// 将菜单项对象添加到菜单对象中

JMenu sonMenu2 = new JMenu("子菜单名称2");// 创建菜单的子菜单对象
menu2.add(sonMenu2);// 将子菜单对象添加到上级菜单对象中

JMenuItem sonMenuItem2 = new JMenuItem("子菜单项名称2");// 创建子菜单的菜单项对象
sonMenuItem2.addActionListener(new ItemListener());// 为菜单项添加事件监听器
sonMenu2.add(sonMenuItem2);// 将子菜单的菜单项对象添加到子菜单对象中
//
}

private class ItemListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
JMenuItem menuItem = (JMenuItem) e.getSource();
System.out.println("您单击的是菜单项:" + menuItem.getText());
}
}

}

 

测试结果:

追问
是不是漏一了个类包:import java.io.Serializable;
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
鞠婧祎老婆柠祎
2019-11-11 · TA获得超过727个赞
知道小有建树答主
回答量:2416
采纳率:67%
帮助的人:415万
展开全部
你这编程也是牛逼了,类名直接上中文
追问
这命名是不规范,但好像不影响程序运行,但你指出的问题我会修改,下次不范了,谢谢。但这个三级菜单怎样做能不能给我一些指导的意见或来个实例?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式