java菜單樹
Ⅰ java,jsp帶checkbox的樹形菜單,如何實現
jsp中帶有checkbox的屬性菜單需要用easyui組件來實現,代碼如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>CheckBox Tree - jQuery EasyUI Demo</title>
<link rel="stylesheet" type="text/css" href="../../themes/default/easyui.css">
<link rel="stylesheet" type="text/css" href="../../themes/icon.css">
<link rel="stylesheet" type="text/css" href="../demo.css">
<script type="text/javascript" src="../../jquery.min.js"></script>
<script type="text/javascript" src="../../jquery.easyui.min.js"></script>
</head>
<body>
<h2>CheckBox Tree</h2>
<p>Tree nodes with check boxes.</p>
<div style="margin:20px 0;">
<a href="#" class="easyui-linkbutton" onclick="getChecked()">GetChecked</a>
</div>
<div style="margin:10px 0">
<input type="checkbox" checked onchange="$('#tt').tree({cascadeCheck:$(this).is(':checked')})">CascadeCheck
<input type="checkbox" onchange="$('#tt').tree({onlyLeafCheck:$(this).is(':checked')})">OnlyLeafCheck
</div>
<div class="easyui-panel" style="padding:5px">
<ul id="tt" class="easyui-tree" data-options="url:'tree_data1.json',method:'get',animate:true,checkbox:true"></ul>
</div>
<script type="text/javascript">
function getChecked(){
var nodes = $('#tt').tree('getChecked');
var s = '';
for(var i=0; i<nodes.length; i++){
if (s != '') s += ',';
s += nodes[i].text;
}
alert(s);
}
</script>
</body>
</html>
運行效果:
Ⅱ Java遞歸如何正確輸出樹形菜單
首先我們要建立樹節點的類:
[java] view plain
package com.tree;
public class Node {
private Integer id;
private Integer parentId;
private String name;
private String link;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Integer getParentId() {
return parentId;
}
public void setParentId(Integer parentId) {
this.parentId = parentId;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getLink() {
return link;
}
public void setLink(String link) {
this.link = link;
}
}
輸出樹形菜單類:
[java] view plain
package com.tree;
import java.util.ArrayList;
import java.util.List;
public class Tree {
private StringBuffer html = new StringBuffer();
private List<Node> nodes;
public Tree(List<Node> nodes){
this.nodes = nodes;
}
public String buildTree(){
html.append("<ul>");
for (Node node : nodes) {
Integer id = node.getId();
if (node.getParentId() == ) {
html.append("\r\n<li id='" + id + "'>" + node.getName()+ "</li>");
build(node);
}
}
html.append("\r\n</ul>");
return html.toString();
}
private void build(Node node){
List<Node> children = getChildren(node);
if (!children.isEmpty()) {
html.append("\r\n<ul>");
for (Node child : children) {
Integer id = child.getId();
html.append("\r\n<li id='" + id + "'>" + child.getName()+ "</li>");
build(child);
}
html.append("\r\n</ul>");
}
}
private List<Node> getChildren(Node node){
List<Node> children = new ArrayList<Node>();
Integer id = node.getId();
for (Node child : nodes) {
if (id.equals(child.getParentId())) {
children.add(child);
}
}
return children;
}
}
Ⅲ java帶有checkbox的樹型菜單
<div
style="width: 100%; height: 94%; float: left; background:#f7f7f1;overflow-y:auto;"
id="treeDiv"></div>
<script type="text/javascript">
var selectedNodeID = '';
var org_treeList = new dhtmlXTreeObject(document.getElementById('treeDiv'),"100%","100%",0);
org_treeList.setImagePath("<%=path%>/images/tree/");
org_treeList.enableIEImageFix(true);
org_treeList.enableCheckBoxes(false);
org_treeList.enableDragAndDrop(false);
org_treeList.enableCheckBoxes(1);
org_treeList.enableThreeStateCheckboxes(true);
org_treeList.attachEvent("onOpenStart", function (id, state) {
if(state == '0')
{
org_treeList.setItemImage(id, 'folderOpen.gif','loading.gif');
}
if(state =='1')
{
org_treeList.setItemImage(id, 'folderOpen.gif','folderClosed.gif');
}
return true;
});
org_treeList.setXMLAutoLoading("你的xml地址");
org_treeList.loadXML("你的XML地址");
</script>
上面是頁面中的代碼 這樣的寫法是動態載入的, 你可以去下面的地址查看具體用法
Ⅳ 樹在java中的應用有哪些
首先:樹與線性表、棧、隊列等線性結構不同,樹是一種非線性結構。一棵樹只有一個根節點,如果一棵樹有了多個根節點,那它已經不再是一棵樹了,而是多棵樹的集合,也被稱為森林。
其次:java中樹的應用主要有:菜單樹,還有許可權樹,商品分類列表也是樹結構。
Ⅳ 如何用Java實現樹形結構啊
定義一個簡單的菜單類 這里是簡單的示例 你可以自行擴展package entity;import java.util.ArrayList;
import java.util.List;/**
* 菜單類
* @author Administrator
*
*/
public class Menu {
/**
* 菜單標題
*/
private String title;
/**
* 子菜單的集合
*/
private List<Menu> childs;
/**
* 父菜單
*/
private Menu parent;
/**
* 構造函數 初始化標題和子菜單集合
*/
public Menu(String title) {
this();
this.title=title;
}
/**
* 構造函數 創建一個虛擬的父菜單(零級菜單) 所有的一級菜單都歸屬於一個虛擬的零級菜單
*
*/
public Menu() {
this.childs = new ArrayList<Menu>();
}
/**
* 獲取子菜單
* @return
*/
public List<Menu> getChilds() {
return childs;
}
/**
* 獲取標題
* @return
*/
public String getTitle() {
return title;
}
/**
* 獲取父菜單
* @return
*/
public Menu getParent() {
return parent;
}
/**
* 添加子菜單並返回該子菜單對象
* @param child
* @return
*/
public Menu addChild(Menu child){
this.childs.add(child);
return child;
}
/**
* 設置父菜單
* @param parent
*/
public void setParent(Menu parent) {
this.parent = parent;
}
/**
* 設置標題
* @param title
*/
public void setTitle(String title) {
this.title = title;
}
} 測試package entity;
/**
* 測試類
* @author Administrator
*
*/
public class Test { /**
* @param args
*/
public static void main(String[] args) {
/**
* 創建一個虛擬的父菜單 用於存放一級菜單 menu01 和 menu02
*/
Menu root = new Menu();
/**
* 創建兩個一級菜單
*/
Menu menu01 = new Menu("一級菜單01");
Menu menu02 = new Menu("一級菜單02");
/**
* 加入虛擬菜單
*/
root.addChild(menu01);
root.addChild(menu02);
/**
* 為兩個一級菜單分別添加兩個子菜單 並返回該子菜單 需要進一步處理的時候 才接收返回的對象 否則只要調用方法
*/
Menu menu0101 = menu01.addChild(new Menu("二級菜單0101"));
menu01.addChild(new Menu("二級菜單0102"));
menu02.addChild(new Menu("二級菜單0201"));
Menu menu0202 = menu02.addChild(new Menu("二級菜單0202"));
/**
* 添加三級菜單
*/
menu0101.addChild(new Menu("三級菜單010101"));
menu0202.addChild(new Menu("三級菜單020201"));
/**
* 列印樹形結構
*/
showMenu(root);
} /**
* 遞歸遍歷某個菜單下的菜單樹
*
* @param menu
* 根菜單
*/
private static void showMenu(Menu menu) {
for (Menu child : menu.getChilds()) {
showMenu(child, 0);
}
} private static void showMenu(Menu menu, int tabNum) {
for (int i = 0; i < tabNum; i++)
System.out.print("\t");
System.out.println(menu.getTitle());
for (Menu child : menu.getChilds())
// 遞歸調用
showMenu(child, tabNum + 1);
}}
控制台輸出結果 一級菜單01 二級菜單0101
三級菜單010101
二級菜單0102一級菜單02
二級菜單0201
二級菜單0202
三級菜單020201
Ⅵ java 如何生成三級樹形菜單
是要返回一個json串吧。mybytis里設置好要返回自定義的結果集合。就直接可以
Ⅶ java遞歸資料庫生成菜單樹
代碼截圖摘自開源框架《若依》網頁鏈接
Ⅷ java,js 樹形菜單:easyui的樹和ztree,jstree哪個好
看你用不用右鍵菜單了。
zTree簡單但是右鍵菜單要單獨掛。
不用的話zTree吧。
Ⅸ java遞歸遍歷某個菜單下的菜單樹
不太清楚你這個Menu是哪來的類,不過如果上文你的程序能執行的話,說明menu.getChilds()是個集合,應該帶有size()的函數。你可以取出menu.getChilds()的大小,再從頭到尾遍歷它。
int count=menu.getChilds().size();
for(int i=0;i<count;i++)
{
showMenu( ((Menu)menu.getChilds().get(i)) , 0 );
//我估計這些children是個list,可以順序遍歷;但也有
//部分可能是set,那樣就得用iterator了。
}
Ⅹ java 中關於菜單,菜單項,菜單條如何區分
菜單條就是一個桌面程序上面那一排菜單的總的集合,比如文件、編輯、工具什麼的那一排就是菜單條,其中的文件、幫助這些就是菜單,文件下面的新建、打開就是菜單項。
總的來說菜單項組成菜單,菜單的集合就是菜單條。