import java.awt.*;
創(chuàng)新互聯(lián)公司專業(yè)為企業(yè)提供蘇州網(wǎng)站建設(shè)、蘇州做網(wǎng)站、蘇州網(wǎng)站設(shè)計、蘇州網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計與制作、蘇州企業(yè)網(wǎng)站模板建站服務(wù),十多年蘇州做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡(luò)服務(wù)。
import java.awt.event.*;
import javax.swing.*;
public class MyMenu extends JFrame{
JMenuBar jmbar=new JMenuBar();
JMenu jmenu=new JMenu("顏色");
JMenuItem jmt1=new JMenuItem("紅色"),
jmt2=new JMenuItem("黃色"),
jmt3=new JMenuItem("藍(lán)色");
JPanel jp=new JPanel();
MyMenu(){
setTitle("菜單測試");
setSize(400,300);
setJMenuBar(jmbar);
jmbar.add(jmenu);
jmenu.add(jmt1);
jmenu.add(jmt2);
jmenu.add(jmt3);
add(jp);
jmt1.addActionListener(new MenuAction(this));
jmt2.addActionListener(new MenuAction(this));
jmt3.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=="藍(lán)色")m.jp.setBackground(Color.blue);
}
}
不知道你要什么事件代碼,我寫了個比較簡單的你看適合不。
對于一個多條件的查詢,我們希望在選擇了一個菜單項后,另外一個下拉菜單能夠根據(jù)我們所選擇的第一個菜單項顯示其所有子菜單項。這就是本文提到的級聯(lián)菜單問題。級聯(lián)菜單實現(xiàn)的方法有很多,本文根據(jù)筆者所做的一個小實驗,簡單的介紹一下如何通過XML來實現(xiàn)級聯(lián)菜單的功能。
首先要定義一個XML文件,用以存放級聯(lián)菜單的信息,我們命名為query.xml,其代碼如下:
?xml version="1.0" encoding="gb2312"?
info
course
text軟件工程/text
value1/value
/course
course
text數(shù)據(jù)結(jié)構(gòu)/text
value2/value
/course
course
text操作系統(tǒng)/text
value3/value
/course
course
text計算機組成原理/text
value4/value
/course
teacher
text張老師/text
value1/value
/teacher
teacher
text李老師/text
value2/value
/teacher
teacher
text劉老師/text
value3/value
/teacher
teacher
text王老師/text
value4/value
/teacher
class
text一班/text
value1/value
/class
class
text二班/text
value2/value
/class
class
text三班/text
value3/value
/class
class
text四班/text
value4/value
/class
/info
然后再創(chuàng)建一個HTML文件,命名為query.html
在query.html里,首先創(chuàng)建一個表單
form id="queryForm"
select id="keyword" name="keyword" onChange="showDetail()"
option value="default"default/option
option value="1"課程/option
option value="2"教師/option
option value="3"班級/option
/select
select id="content" name="content" onChange="showValue()"
option value="default"default/option
/select
/form
從上面的代碼可以看出,當(dāng)我們選擇第一級菜單時,會觸發(fā)showDetail方法,這是通過JavaScript來實現(xiàn)的,因此我們還需要定義一個showDetail方法,其實現(xiàn)代碼如下:
function showDetail(){
var document_xml = new ActiveXObject("Microsoft.XMLDOM");
document_xml.load("query.xml"); //加載info.xml
var RootNode = document_xml.documentElement; //獲得info.xml文檔的根節(jié)點
var keyword = document.getElementByIdx("keyword").value;
var details; //用以存放二級菜單內(nèi)容,是一個數(shù)組對象
var content = document.getElementByIdx("content");
content.options.length = 0;//先清空
if(keyword=="default"){
var option = new Option("default","default");
content.add(option);
}else{
if(keyword=="1"){
details = document_xml.getElementsByTagName_r("course");
}else if(keyword=="2"){
details = document_xml.getElementsByTagName_r("teacher");
}else if(keyword=="3"){
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; //獲取文本以應(yīng)的值
var option = new Option(xText,xValue);
content.add(option);
}
}
}
從上面的代碼可以看出,showDetail方法會根據(jù)一級菜單選項的不同顯示對應(yīng)的子菜單。這里涉及到通過JavaScript來讀取xml文件的操作,可以參見源碼的注釋部分,記得結(jié)合xml文件里的內(nèi)容一起看哦。
二級菜單顯示出來之后,我們就可以進行選擇了,選擇之后,會調(diào)用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當(dāng)中text值的獲取,它與select表單域的value的獲取方式不大一樣,詳見代碼及其注釋。
把兩個方法封裝在head/head之間,記得要寫上script language="javascript"和/script了,然后你直接打開query.xml就可以看到效果了。
不知是否對樓主有用,希望對樓主有所幫助。
1,所謂級聯(lián)下拉菜單就是動態(tài)的下拉菜單,
當(dāng)?shù)谝患夁x中某一個選項是,
第二級會跟著第一級的變化而變化,
比如:當(dāng)“學(xué)院”這一欄選擇“信息學(xué)院”那么“專業(yè)”這一欄只會出現(xiàn)屬于信息學(xué)院的專業(yè)。
2,級聯(lián)下拉菜單的實現(xiàn)是運用itemStateChanged(ItemEvent )方法實現(xiàn),首先在下拉菜單上注冊ItemListener監(jiān)視器,當(dāng)下拉菜單選中時觸發(fā)itemStateChanged(ItemEvent )事件重新給下一級下拉菜單賦值。
public void itemStateChanged(ItemEvent e) {
if(e.getSource() == xueyuan) { // 當(dāng)點擊學(xué)院下拉框時
try {
Statement stat2 = con.createStatement();
String sql = "select D_ID from xueyuanin WHERE
D_NAME='"+e.getItem()+"'"; // 獲取該學(xué)院的代號
ResultSet rs = stat2.executeQuery(sql);
rs.next();
按你這程序可以在上級菜單判斷返回值是否能整除10(也就是是否以0結(jié)尾),如果是,則上級菜單把上級命令代碼末尾賦成0(也就是本級返回110,上級返回10),依次類推,在最頂級菜單里面接收到0直接break跳出循環(huán)。
這樣是級聯(lián)的退出,還有種比較簡便的辦法就是System.exit(0)直接終止程序。
如果只想跳上一級,可以返回-1之類的數(shù)字,讓上一級菜單判斷一下continue(或者什么都不做也行),把菜單刷一遍就行了。
網(wǎng)頁名稱:菜單級聯(lián)java代碼 開始菜單的程序級聯(lián)菜單
分享鏈接:http://jinyejixie.com/article16/hpdidg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃、品牌網(wǎng)站制作、網(wǎng)站改版、網(wǎng)站設(shè)計公司、自適應(yīng)網(wǎng)站、搜索引擎優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)