网站首页 > 文章中心 > 其它

菜单级联java代码

作者:小编 更新时间:2023-08-26 22:49:22 浏览量:69人看过

怎么实现级联菜单?

对于一个多条件的查询,我们希望在选择了一个菜单项后,另外一个下拉菜单能够根据我们所选择的第一个菜单项显示其所有子菜单项.这就是本文提到的级联菜单问题.级联菜单实现的方法有很多,本文根据笔者所做的一个小实验,简单的介绍一下如何通过XML来实现级联菜单的功能.

首先要定义一个XML文件,用以存放级联菜单的信息,我们命名为query.xml,其代码如下:

info

菜单级联java代码-图1

course

text软件工程/text

value1/value

/course

text数据结构/text

text操作系统/text

text计算机组成原理/text

teacher

text张老师/text

/teacher

text李老师/text

菜单级联java代码-图2

text刘老师/text

text王老师/text

class

text一班/text

/class

text二班/text

text三班/text

text四班/text

/info

然后再创建一个HTML文件,命名为query.html

在query.html里,首先创建一个表单

form id="queryForm"

select id="keyword" name="keyword" onChange="showDetail()"

option value="default"default/option

option value="1"课程/option

/select

select id="content" name="content" onChange="showValue()"

/form

从上面的代码可以看出,当我们选择第一级菜单时,会触发showDetail方法,这是通过JavaScript来实现的,所以呢我们还需要定义一个showDetail方法,其实现代码如下:

function showDetail(){

var document_xml = new ActiveXObject("Microsoft.XMLDOM");

document_xml.load("query.xml"); //加载info.xml

var RootNode = document_xml.documentElement; //获得info.xml文档的根节点

var keyword = document.getElementByIdx("keyword").value;

var details; //用以存放二级菜单内容,是一个数组对象

var content = document.getElementByIdx("content");

content.options.length = 0;//先清空

if(keyword=="default"){

var option = new Option("default","default");

content.add(option);

菜单级联java代码-图3

}else{

if(keyword=="1"){

details = document_xml.getElementsByTagName_r("course");

details = document_xml.getElementsByTagName_r("teacher");

details = document_xml.getElementsByTagName_r("class");

}

for(var i=0;idetails.length;i++){

var xText = details[i].childNodes[0].firstChild.nodeValue; //获取文本

var xValue = details[i].childNodes[1].firstChild.nodeValue; //获取文本以应的值

var option = new Option(xText,xValue);

从上面的代码可以看出,showDetail方法会根据一级菜单选项的不同显示对应的子菜单.这里涉及到通过JavaScript来读取xml文件的操作,可以参见源码的注释部分,记得结合xml文件里的内容一起看哦.

二级菜单显示出来之后,我们就可以进行选择了,选择之后,会调用showValue方法,把选到的子菜单项的value和text显示出来.showValue的定义如下:

function showValue(){

var content= document.getElementByIdx("content");

var contentText = content.options[content.selectedIndex].text; //获取text值

var contentValue = document.getElementByIdx("content").value; //获取文本

alert(contentValue+" "+contentText);

在这个方法里,要注意option当中text值的获取,它与select表单域的value的获取方式不大一样,详见代码及其注释.

把两个方法封装在head/head之间,记得要写上script language="javascript"和/script了,然后你直接打开query.xml就可以看到效果了.

不知是否对楼主有用,希望对楼主有所帮助.

本人初学JAVA 面向对象 ,菜单级联问题.

按你这程序可以在上级菜单判断返回值是否能整除10(也就是是否以0结尾),如果是,则上级菜单把上级命令代码末尾赋成0(也就是本级返回110,上级返回10),依次类推,在最顶级菜单里面接收到0直接break跳出循环.

这样是级联的退出,还有种比较简便的办法就是System.exit(0)直接终止程序.

如果只想跳上一级,可以返回-1之类的数字,让上一级菜单判断一下continue(或者什么都不做也行),把菜单刷一遍就行了.

java中怎么实现多个下拉菜单的动态关联?

①.,所谓级联下拉菜单就是动态的下拉菜单,

当第一级选中某一个选项是,

第二级会跟着第一级的变化而变化,

比如:当"学院"这一栏选择"信息学院"那么"专业"这一栏只会出现属于信息学院的专业.

public void itemStateChanged(ItemEvent e) {

try {

String sql = "select D_ID from xueyuanin WHERE

D_NAME='"+e.getItem()+"'"; // 获取该学院的代号

rs.next();

java的菜单代码怎么写?

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

public class MyMenu extends JFrame{

JMenuBar jmbar=new JMenuBar();

JMenu jmenu=new JMenu("颜色");

JMenuItem jmt1=new JMenuItem("红色"),

JPanel jp=new JPanel();

MyMenu(){

setTitle("菜单测试");

setJMenuBar(jmbar);

jmbar.add(jmenu);

jmenu.add(jmt1);

add(jp);

jmt1.addActionListener(new MenuAction(this));

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

setVisible(true);

public static void main(String[] args) {

new MyMenu();

class MenuAction implements ActionListener{

MyMenu m;

MenuAction(MyMenu m){

this.m=m;

public void actionPerformed(ActionEvent e){

String color=e.getActionCommand();

if(color=="红色")m.jp.setBackground(Color.red);

else if(color=="黄色")m.jp.setBackground(Color.yellow);

else if(color=="蓝色")m.jp.setBackground(Color.blue);

不知道你要什么事件代码,我写了个比较简单的你看适合不.

以上就是土嘎嘎小编为大家整理的菜单级联java代码相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章