又是一个JDK没研究透的人,建议多看看源代码。 如果有帮助别忘了给我加分。 /* * TestFrame.java * * Created on 2003年2月11日, 下午10:31 */ import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.tree.*; import javax.swing.plaf.basic.*; public class TestFrame_1 extends JFrame{ JDialog dialog = new JDialog(); /** Creates a new instance of TestFrame */ public TestFrame_1() {
我这有个例子,不过我现在有事,明天发给你,如果你要的话。
如果有帮助别忘了给我加分。
/*
* TestFrame.java
*
* Created on 2003年2月11日, 下午10:31
*/
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.tree.*;
import javax.swing.plaf.basic.*;
public class TestFrame_1 extends JFrame{
JDialog dialog = new JDialog();
/** Creates a new instance of TestFrame */
public TestFrame_1() {
getContentPane().add(new MyTree(), "Center");
addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent evt)
{
System.exit(0);
}
});
}
class MyTree extends JTree
{
public MyTree()
{
DefaultTreeModel model = (DefaultTreeModel)getModel();
MutableTreeNode root = new DefaultMutableTreeNode("中国");
model.setRoot(root);
model.insertNodeInto(new DefaultMutableTreeNode("北京"), root, 0);
model.insertNodeInto(new DefaultMutableTreeNode("上海"), root, 0);
model.insertNodeInto(new DefaultMutableTreeNode("天津"), root, 0);
BasicTreeUI ui = (BasicTreeUI)getUI();
ui.setRightChildIndent(100);//关键代码
}
}
class MyCellRenderer extends DefaultTreeCellRenderer
{
public Component getTreeCellRendererComponent(JTree tree,
Object value,
boolean selected,
boolean expanded,
boolean leaf,
int row,
boolean hasFocus)
{
Component com = super.getTreeCellRendererComponent(tree,
value, selected, expanded, leaf,row, hasFocus);
JLabel label = (JLabel)com;
label.setPreferredSize(new Dimension(100, 25));
return com;
}
}
public static void main(String[] args)
{
JFrame f = new TestFrame_1();
f.setSize(640, 480);
f.show();
}
}
|
- 辽宁
| |-大连
| |-沈阳
|
- 山东
-
-济南而且基本上从此树的行为就开始变得非常怪异,无据可寻。遇到过类似情况吗?能不能再指点一二
如果还不对,代码拿来看看。
我的代码应该没问题
planTree.getModal().removeNodeFromParent(selectedShipPlan_);以前也出过类似错误,后来发现是我重写了treeNode的equals方法,树可能自己会去找这个方法,导致错误,改了之后好了。但是现在又莫名其妙了。我就是想知道什么情况下,树自己把自己画的乱糟糟 :)。不信你试试。CC :那个贴子,不知为什么结贴了分没给出去,先在这答谢吧。