看起来应该是JTabel和JTree综合使用的,但找遍java网站也没找到例子。

解决方案 »

  1.   

    :) 谢谢灰云,我做的是application生命不息,up不止!!!
      

  2.   

    应该使用树表模型好点。用JTree做JTable的TableCellRenderer
    我这有个例子,不过我现在有事,明天发给你,如果你要的话。
      

  3.   

    relive , 当然要了。不过适合我这个问题吗?我见过那种树表的东东,不过它的树的各级节点都在table的第一个column里,和我说的不是一回事,如果你又能解决我这种情况的例子,方法,思路,恳请指点,不胜感激
      

  4.   

    又是一个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() {
            
            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();
        }
        
    }
      

  5.   

    xjffj(小刀) 非常感谢,非差感谢,先奉上100分,请笑纳。到http://expert.csdn.net/Expert/topic/1417/1417170.xml?temp=.2900354 拿分吧。这个贴继续,再请教个问题。我在删除一个节点的时候,出现那个节点没了,但是还有个什么东西在那里,用鼠标点也是选中的那种颜色,而且树开始变得不完整,该有的竖线,没有了,就剩下横线在这里。例如删除“青岛“后树变得象下面这样    中国
          |
          - 辽宁
          |  |-大连
          |  |-沈阳
          |
          - 山东
             -
             -济南而且基本上从此树的行为就开始变得非常怪异,无据可寻。遇到过类似情况吗?能不能再指点一二
      

  6.   

    你从哪里删的?要从Model中删才行。
    如果还不对,代码拿来看看。
      

  7.   

    我这树种的怪怪的 :) 。
    我的代码应该没问题
    planTree.getModal().removeNodeFromParent(selectedShipPlan_);以前也出过类似错误,后来发现是我重写了treeNode的equals方法,树可能自己会去找这个方法,导致错误,改了之后好了。但是现在又莫名其妙了。我就是想知道什么情况下,树自己把自己画的乱糟糟 :)。不信你试试。CC :那个贴子,不知为什么结贴了分没给出去,先在这答谢吧。