java追加節點方法(jquery追加節點)

本文目錄一覽:

java 動態的給樹添加新節點 望高手指點啊

//先選中節點才能增加節點

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

import javax.swing.event.*;

import javax.swing.tree.*;

public class TreeTest implements ActionListener,TreeModelListener{

JLabel label=null;

JTree tree=null;

DefaultTreeModel treeModel=null;

String nodeName=null;//原有節點名稱

public TreeTest(){

JFrame f=new JFrame(“TreeTest”);

Container contentPane=f.getContentPane();

DefaultMutableTreeNode root=new DefaultMutableTreeNode(“資源管理器”);

tree=new JTree(root);

tree.setEditable(true);

tree.addMouseListener(new MouseHandle());

treeModel=(DefaultTreeModel)tree.getModel();

treeModel.addTreeModelListener(this);

JScrollPane scrollPane=new JScrollPane();

scrollPane.setViewportView(tree);

JPanel panel=new JPanel();

JButton b=new JButton(“新增節點”);

b.addActionListener(this);

panel.add(b);

b=new JButton(“刪除節點”);

b.addActionListener(this);

panel.add(b);

b=new JButton(“清除所有節點”);

b.addActionListener(this);

panel.add(b);

label=new JLabel(“Action”);

contentPane.add(panel,BorderLayout.NORTH);

contentPane.add(scrollPane,BorderLayout.CENTER);

contentPane.add(label,BorderLayout.SOUTH);

f.pack();

f.setVisible(true);

f.addWindowListener(new WindowAdapter(){

public void windowClosing(WindowEvent e){

System.exit(0);

}

});

}

//本方法運行新增、刪除、清除所有節點的程序代碼.

public void actionPerformed(ActionEvent ae){

if (ae.getActionCommand().equals(“新增節點”)){

DefaultMutableTreeNode parentNode=null;

DefaultMutableTreeNode newNode=new DefaultMutableTreeNode(“新節點”);

newNode.setAllowsChildren(true);

TreePath parentPath=tree.getSelectionPath();

//取得新節點的父節點

parentNode=(DefaultMutableTreeNode)(parentPath.getLastPathComponent());

//由DefaultTreeModel的insertNodeInto()方法增加新節點

treeModel.insertNodeInto(newNode,parentNode,parentNode.getChildCount());

//tree的scrollPathToVisible()方法在使Tree會自動展開文件夾以便顯示所加入的新節點。若沒加這行則加入的新節點

//會被 包在文件夾中,你必須自行展開文件夾才看得到。

tree.scrollPathToVisible(new TreePath(newNode.getPath()));

label.setText(“新增節點成功”);

}

if (ae.getActionCommand().equals(“刪除節點”)){

TreePath treepath=tree.getSelectionPath();

if (treepath!=null){

//下面兩行取得選取節點的父節點.

DefaultMutableTreeNode selectionNode=(DefaultMutableTreeNode)treepath.getLastPathComponent();

TreeNode parent=(TreeNode)selectionNode.getParent();

if (parent!=null) {

//由DefaultTreeModel的removeNodeFromParent()方法刪除節點,包含它的子節點。

treeModel.removeNodeFromParent(selectionNode);

label.setText(“刪除節點成功”);

}

}

}

if (ae.getActionCommand().equals(“清除所有節點”)){

//下面一行,由DefaultTreeModel的getRoot()方法取得根節點.

DefaultMutableTreeNode rootNode=(DefaultMutableTreeNode)treeModel.getRoot();

//下面一行刪除所有子節點.

rootNode.removeAllChildren();

//刪除完後務必運行DefaultTreeModel的reload()操作,整個Tree的節點才會真正被刪除.

treeModel.reload();

label.setText(“清除所有節點成功”);

}

}

public void treeNodesChanged(TreeModelEvent e){

TreePath treePath=e.getTreePath();

DefaultMutableTreeNode node=(DefaultMutableTreeNode)treePath.getLastPathComponent();

try{

int[] index=e.getChildIndices();

node=(DefaultMutableTreeNode)node.getChildAt(index[0]);

}catch(NullPointerException exc){}

label.setText(nodeName+”更改數據為:”+(String)node.getUserObject());

}

public void treeNodesInserted(TreeModelEvent e){

System.out.println(“new node insered”);

}

public void treeNodesRemoved(TreeModelEvent e){

System.out.println(“node deleted”);

}

public void treeStructureChanged(TreeModelEvent e){

System.out.println(“Structrue changed”);

}

public static void main(String[] args){

new TreeTest();

}

class MouseHandle extends MouseAdapter{

public void mousePressed(MouseEvent e){

try{

JTree tree=(JTree)e.getSource();

int rowLocation=tree.getRowForLocation(e.getX(),e.getY());

TreePath treepath=tree.getPathForRow(rowLocation);

TreeNode treenode=(TreeNode)treepath.getLastPathComponent();

nodeName=treenode.toString();

}catch(NullPointerException ne){}

}

}

}

java w3c在指定位置添加節點

用下面的方法可以得到ID=2的child節點命名為child2,然後調用root.insertBefore(child3,child2);即可。

具體代碼如下:

Element root=doc.getDocumentElement();

Element child2=getChildElementByTagName(root,”child”,”ID”,”2″);

Element child3=doc.createElement(“child”);

root.insertBefore(child3,child2);

child3.setNodeValue(“new”);

public Element getChildElementByTagName(Element parent, String name,String attribute,String attrValue) {

Node node = parent.getFirstChild();

while(node != null) {

if(node.getNodeType() == Node.ELEMENT_NODE node.getNodeName().equals(name)){

Element n=(Element) node;

if(attrValue.equals(n.getAttribute(attribute)))return n;

}

node = node.getNextSibling();

}

return null;

}

java中的XML追加內容,追加節點,和節點的內容,還要常用的設計模式的代碼

/**

* 根據Xml文件生成Document對象

*

* @param file

* xml文件路徑

* @return Document對象

* @throws DocumentException

*/

public static Document getDocument(String path) throws DocumentException {

File file = new File(path);

SAXReader xmlReader = new SAXReader();

return xmlReader.read(file);

}

/**

* 根據輸入流生成Document對象

*

* @param is

* 輸入流

* @return Document對象

* @throws DocumentException

*/

public static Document getDocument(InputStream is) throws DocumentException {

SAXReader xmlReader = new SAXReader();

return xmlReader.read(is);

}

/**

* 根據Document得到根結點

*

* @param doc

* Document目錄

* @return 根結點

* @throws DocumentException

*/

public static Element getRoot(String path) throws DocumentException {

Document doc = getDocument(path);

return doc.getRootElement();

}

/**

* 取出當前結點下的所有子結點

*

* @param root

* 當前結點

* @return 一組Element

* @throws DocumentException

*/

@SuppressWarnings(“unchecked”)

public static ListElement getElements(String path)

throws DocumentException {

Element root = getRoot(path);

return root.elements();

}

/**

* 根據元素名稱返回一組Element

*

* @param root

* 當前結點

* @param name

* 要返回的元素名稱

* @return 一組Element

* @throws DocumentException

*/

@SuppressWarnings(“unchecked”)

public static ListElement getElementsByName(String path, String name)

throws DocumentException {

Element root = getRoot(path);

return root.elements(name);

}

/**

* 根據元素名稱返回一個元素(如果有多個元素的話,只返回第一個)

*

* @param root

* 當前結點

* @param name

* 要返回的元素名稱

* @return 一個Element元素

* @throws DocumentException

*/

public static Element getElementByName(String path, String name)

throws DocumentException {

Element root = getRoot(path);

return root.element(name);

}

/**

* 根據當前元素,返回該元素的所有屬性

*

* @param root

* 當前結點

* @return 當前結點的所有屬性

* @throws DocumentException

*/

@SuppressWarnings(“unchecked”)

public static ListAttribute getAttributes(String path)

throws DocumentException {

Element root = getRoot(path);

return root.attributes();

}

/**

* 根據屬性名稱,返回當前元素的某個屬性

*

* @param root

* 當前結點

* @return 當前結點的一個屬性

* @throws DocumentException

*/

public static Attribute getAttributeByName(String path, String name)

throws DocumentException {

Element root = getRoot(path);

return root.attribute(name);

}

public static ListElement getElementWithAttribute(String path,String attr,String value) throws DocumentException{

ListElement elist = new ArrayListElement() ;

ListElement list = getElements(path);

for(Element element:list){

if(element.attribute(attr).getText().equals(value)){

elist.add(element);

}

}

try {

elist.add(getElementSelf(path, attr, value));

} catch (Exception e) {

// TODO: handle exception

}

return elist;

}

public static Element getElementSelf(String path,String attr,String value) throws DocumentException{

Element element = null ;

ListElement list = getElements(path);

for(Element e:list){

if(e.attribute(attr).getText().equals(value)){

element = e ;

}

}

return element;

}

原創文章,作者:ULBUR,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/324747.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
ULBUR的頭像ULBUR
上一篇 2025-01-13 13:23
下一篇 2025-01-13 13:23

相關推薦

  • Java JsonPath 效率優化指南

    本篇文章將深入探討Java JsonPath的效率問題,並提供一些優化方案。 一、JsonPath 簡介 JsonPath是一個可用於從JSON數據中獲取信息的庫。它提供了一種DS…

    編程 2025-04-29
  • java client.getacsresponse 編譯報錯解決方法

    java client.getacsresponse 編譯報錯是Java編程過程中常見的錯誤,常見的原因是代碼的語法錯誤、類庫依賴問題和編譯環境的配置問題。下面將從多個方面進行分析…

    編程 2025-04-29
  • Java騰訊雲音視頻對接

    本文旨在從多個方面詳細闡述Java騰訊雲音視頻對接,提供完整的代碼示例。 一、騰訊雲音視頻介紹 騰訊雲音視頻服務(Cloud Tencent Real-Time Communica…

    編程 2025-04-29
  • Java Bean加載過程

    Java Bean加載過程涉及到類加載器、反射機制和Java虛擬機的執行過程。在本文中,將從這三個方面詳細闡述Java Bean加載的過程。 一、類加載器 類加載器是Java虛擬機…

    編程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介紹

    本文將詳細介紹Java Milvus SearchParam withoutFields的相關知識和用法。 一、什麼是Java Milvus SearchParam without…

    編程 2025-04-29
  • ArcGIS更改標註位置為中心的方法

    本篇文章將從多個方面詳細闡述如何在ArcGIS中更改標註位置為中心。讓我們一步步來看。 一、禁止標註智能調整 在ArcMap中設置標註智能調整可以自動將標註位置調整到最佳顯示位置。…

    編程 2025-04-29
  • 解決.net 6.0運行閃退的方法

    如果你正在使用.net 6.0開發應用程序,可能會遇到程序閃退的情況。這篇文章將從多個方面為你解決這個問題。 一、代碼問題 代碼問題是導致.net 6.0程序閃退的主要原因之一。首…

    編程 2025-04-29
  • Python中init方法的作用及使用方法

    Python中的init方法是一個類的構造函數,在創建對象時被調用。在本篇文章中,我們將從多個方面詳細討論init方法的作用,使用方法以及注意點。 一、定義init方法 在Pyth…

    編程 2025-04-29
  • Python創建分配內存的方法

    在python中,我們常常需要創建並分配內存來存儲數據。不同的類型和數據結構可能需要不同的方法來分配內存。本文將從多個方面介紹Python創建分配內存的方法,包括列表、元組、字典、…

    編程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java語言中的一個版本,於2014年3月18日發布。本文將從多個方面對Java 8中某一周的周一進行詳細的闡述。 一、數組處理 Java 8新特性之一是Stream…

    編程 2025-04-29

發表回復

登錄後才能評論