java 如何用用数组设置一个窗体的三级菜单? 20
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 · 百度认证:云南新华电脑职业培训学校官方账号
代码演示:
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;
这命名是不规范,但好像不影响程序运行,但你指出的问题我会修改,下次不范了,谢谢。但这个三级菜单怎样做能不能给我一些指导的意见或来个实例?
广告 您可能关注的内容 |