/* (swing1.1.1beta2) */
//package zzimport java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.tree.*;
import javax.swing.plaf.basic.*;/**
* @version 1.0 04/16/99
*/
public class OnlyTextTreeExample extends JFrame {
public OnlyTextTreeExample() {
// super("OnlyTextTreeExample");
String[] strs = {"swing", // 0
"platf", // 1
"basic", // 2
"metal", // 3
"JTree"}; // 4
DefaultMutableTreeNode[] nodes = new DefaultMutableTreeNode[strs.length];
for (int i=0;i<strs.length;i++) {
nodes[i] = new DefaultMutableTreeNode(strs[i]);
}
nodes[0].add(nodes[1]);
nodes[1].add(nodes[2]);
nodes[1].add(nodes[3]);
nodes[0].add(nodes[4]);
JTree tree = new JTree( nodes[0] );
DefaultTreeCellRenderer renderer = (DefaultTreeCellRenderer)tree.getCellRenderer();
//renderer.setOpenIcon(null);
//renderer.setClosedIcon(null);
//renderer.setLeafIcon(null);
BasicTreeUI ui = (BasicTreeUI)tree.getUI();
//ui.setExpandedIcon(null);
//ui.setCollapsedIcon(null);
JScrollPane sp = new JScrollPane(tree);
getContentPane().add(sp, BorderLayout.CENTER);
} public static void main(String args[]) {
OnlyTextTreeExample frame = new OnlyTextTreeExample();
frame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {System.exit(0);}
});
frame.setSize(300, 150);
frame.setVisible(true);
}
}
//package zzimport java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.tree.*;
import javax.swing.plaf.basic.*;/**
* @version 1.0 04/16/99
*/
public class OnlyTextTreeExample extends JFrame {
public OnlyTextTreeExample() {
// super("OnlyTextTreeExample");
String[] strs = {"swing", // 0
"platf", // 1
"basic", // 2
"metal", // 3
"JTree"}; // 4
DefaultMutableTreeNode[] nodes = new DefaultMutableTreeNode[strs.length];
for (int i=0;i<strs.length;i++) {
nodes[i] = new DefaultMutableTreeNode(strs[i]);
}
nodes[0].add(nodes[1]);
nodes[1].add(nodes[2]);
nodes[1].add(nodes[3]);
nodes[0].add(nodes[4]);
JTree tree = new JTree( nodes[0] );
DefaultTreeCellRenderer renderer = (DefaultTreeCellRenderer)tree.getCellRenderer();
//renderer.setOpenIcon(null);
//renderer.setClosedIcon(null);
//renderer.setLeafIcon(null);
BasicTreeUI ui = (BasicTreeUI)tree.getUI();
//ui.setExpandedIcon(null);
//ui.setCollapsedIcon(null);
JScrollPane sp = new JScrollPane(tree);
getContentPane().add(sp, BorderLayout.CENTER);
} public static void main(String args[]) {
OnlyTextTreeExample frame = new OnlyTextTreeExample();
frame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {System.exit(0);}
});
frame.setSize(300, 150);
frame.setVisible(true);
}
}
/**
* Invoked this to insert newChild at location index in parents children.
* This will then message nodesWereInserted to create the appropriate
* event. This is the preferred way to add children as it will create
* the appropriate event.
*/
public void insertNodeInto(MutableTreeNode newChild,
MutableTreeNode parent, int index){
parent.insert(newChild, index); int[] newIndexs = new int[1]; newIndexs[0] = index;
nodesWereInserted(parent, newIndexs);
}
我是已经画了一颗tree,然后这时想任选一个节点(不是叶子),在该节点下添加子节点,
但是如果如果这个是展开的或者曾经展开过,则用add或者insert都无法添加成功。如果是叶子,那肯定可以的。或者,如果这个节点没有被打开过,那么也是可行的。
见鬼了!!!
我的无法添加字节点的情况是这样的:
如果改节点有children,且改节点被展开过,则无法添加新节点。解决办法:
其他:一棵树在一个panel上的显示问题。分4步
1.jTree = null ;
2.top.add(新节点)
3.jTree = new JTree(top);
4. jScrollPane3.getViewport().add(jTree,null);//重新显示这课树
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
这样就搞定了!
我把分数给谁好呢?好痛苦。
nake(snake)代码最多,就给他吧。
再次感谢各位高手!