关于jtree添加节点 如何在jtree中实现用户自己添加节点,请高手指点 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 一个简单的例子:import java.awt.Container;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.JTree;import javax.swing.tree.DefaultMutableTreeNode;import javax.swing.tree.DefaultTreeModel;import javax.swing.tree.TreeNode;import javax.swing.tree.TreePath;public class TreeTest { public static void main(String[] args) { JFrame frame = new TreeEditFrame(); frame.setVisible(true); }}class TreeEditFrame extends JFrame implements ActionListener { private DefaultTreeModel model; private JTree tree; private JButton addChildButton; private JButton deleteButton; public TreeEditFrame() { setTitle("TreeTest"); setSize(300, 200); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); TreeNode root = makeSampleTree(); model = new DefaultTreeModel(root); tree = new JTree(model); tree.setEditable(true); Container contentPane = getContentPane(); JScrollPane scrollPane = new JScrollPane(tree); contentPane.add(scrollPane, "Center"); JPanel panel = new JPanel(); addChildButton = new JButton("Add Child"); addChildButton.addActionListener(this); panel.add(addChildButton); deleteButton = new JButton("Delete"); deleteButton.addActionListener(this); panel.add(deleteButton); contentPane.add(panel, "South"); } public TreeNode makeSampleTree() { DefaultMutableTreeNode root = new DefaultMutableTreeNode("Root"); DefaultMutableTreeNode country = new DefaultMutableTreeNode("Node1"); root.add(country); DefaultMutableTreeNode state = new DefaultMutableTreeNode("subNode1"); country.add(state); DefaultMutableTreeNode city = new DefaultMutableTreeNode("subsubNode1"); state.add(city); city = new DefaultMutableTreeNode("subsubNode2"); state.add(city); return root; } public void actionPerformed(ActionEvent event) { DefaultMutableTreeNode selectedNode = (DefaultMutableTreeNode) tree .getLastSelectedPathComponent(); if (selectedNode == null) return; if (event.getSource().equals(deleteButton)) { if (selectedNode.getParent() != null) model.removeNodeFromParent(selectedNode); return; } DefaultMutableTreeNode newNode = new DefaultMutableTreeNode("newNode"); if (event.getSource().equals(addChildButton)) { model.insertNodeInto(newNode, selectedNode, selectedNode .getChildCount()); } TreeNode[] nodes = model.getPathToRoot(newNode); TreePath path = new TreePath(nodes); tree.scrollPathToVisible(path); }} 求解关于java参数传递的问题一道 一个二维数组的算法问题 问下,html难不难学? Calendar类的方法不懂 还是昨天的代码,问一个新的问题! 有一个这样的字符串比较,不知如何才能更简单? 表模型和列模型是什么关系? 为什么查询数据库时连字段也要按顺序读取? 想学JAVA JAVA怎么为注解添加Class属性? 如何从控制台输入数据? 一道让我想不透的题目,向各位大大门求救
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTree;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeModel;
import javax.swing.tree.TreeNode;
import javax.swing.tree.TreePath;public class TreeTest {
public static void main(String[] args) {
JFrame frame = new TreeEditFrame();
frame.setVisible(true);
}
}class TreeEditFrame extends JFrame implements ActionListener {
private DefaultTreeModel model;
private JTree tree;
private JButton addChildButton;
private JButton deleteButton;
public TreeEditFrame() {
setTitle("TreeTest");
setSize(300, 200);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); TreeNode root = makeSampleTree();
model = new DefaultTreeModel(root);
tree = new JTree(model);
tree.setEditable(true); Container contentPane = getContentPane();
JScrollPane scrollPane = new JScrollPane(tree);
contentPane.add(scrollPane, "Center"); JPanel panel = new JPanel();
addChildButton = new JButton("Add Child");
addChildButton.addActionListener(this);
panel.add(addChildButton);
deleteButton = new JButton("Delete");
deleteButton.addActionListener(this);
panel.add(deleteButton);
contentPane.add(panel, "South");
} public TreeNode makeSampleTree() {
DefaultMutableTreeNode root = new DefaultMutableTreeNode("Root");
DefaultMutableTreeNode country = new DefaultMutableTreeNode("Node1");
root.add(country);
DefaultMutableTreeNode state = new DefaultMutableTreeNode("subNode1");
country.add(state);
DefaultMutableTreeNode city = new DefaultMutableTreeNode("subsubNode1");
state.add(city);
city = new DefaultMutableTreeNode("subsubNode2");
state.add(city);
return root;
} public void actionPerformed(ActionEvent event) {
DefaultMutableTreeNode selectedNode = (DefaultMutableTreeNode) tree
.getLastSelectedPathComponent(); if (selectedNode == null)
return; if (event.getSource().equals(deleteButton)) {
if (selectedNode.getParent() != null)
model.removeNodeFromParent(selectedNode);
return;
} DefaultMutableTreeNode newNode = new DefaultMutableTreeNode("newNode"); if (event.getSource().equals(addChildButton)) {
model.insertNodeInto(newNode, selectedNode, selectedNode
.getChildCount());
}
TreeNode[] nodes = model.getPathToRoot(newNode);
TreePath path = new TreePath(nodes);
tree.scrollPathToVisible(path);
}
}