只要能互相能拿到引用就行,把左右都写成一个单例类,由ClassLoader加载时初始完这两个类。

解决方案 »

  1.   

    jbuilder7.0中例子swing----treeControl
      

  2.   

    左边一个树,右边是个panel(cardlayout)
    valueChange中show你的相应页面
      

  3.   

    楼上的,valueChange中show的方法怎么写,粘一点代码上来。谢谢了。
      

  4.   

    每个节点上保存panel的类名,用Class.forName加载,将所有panel都从一个抽象类派生,可以执行一些初始化与清除工作
      

  5.   

    楼上的老兄,有没有例子啊,我现在可是急啊。帮帮忙啊。
    原理我也懂,就是没有相应的例子,如果有例子,那就更明白了。
    现在我左边的树和右边的panel都有,当我单击左边树的不同的叶子时,右边却不能显示相应的panel,大哥,郁闷中。
      

  6.   

    主体是一个JFrame.
    增加两个JInternalFrame.
    左边是JTree, 右边显示.
    JTree设为全局变量,右边显示帧可以得到JTree对象.具体的看书巴! 也不清楚你要知道什么.下面有一个方法你看看!
    SampleData 是我自己写的extends Object!
    你可以写成你自己的对象.private static String[] getDataForSelectTreeNode(JTree workflowTree)
        {
            DynamicTreeNode treeNode = null;
            try
            {
                treeNode = (DynamicTreeNode)(workflowTree.getLastSelectedPathComponent());
            }
            catch(Exception ex)
            {
                return null;
            }
            if (treeNode == null)
            {
                return null;
            }
            SampleData sData = (SampleData)treeNode.getUserObject();
            return sData.getData();
        }
      

  7.   

    兄弟,还有没有别的例子,我的问题是这样:
    一个窗口,主体是JFrame,左边是leftPanel,右边是rightPanel,左边leftPanel上放一个JTree,右边rightPanel上放一个panel,如果单击左边树的叶子,我想在右边的panel上显示不同的panel,代码如下:
    private JSplitPane rootSplitPane;
    private JPanel rightPanel;
    private JPanel leftPanel;
    this.rootSplitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,leftPanel,rightPanel);
    this.getContentPane().add(this.rootSplitPane, BorderLayout.CENTER);
    下面的我不知道怎么写了,兄弟们帮忙。
      

  8.   

    this.rootSplitPane.setLeftComponent(jTree1);
    this.rootSplitPane.setRightComponent(jPanel1);jTree1.addMouseListener(this);
    }public void mouseClicked(MouseEvent e)
    {
     if(e.getClickCount() == 2)
            {
                JComponent com= getInfosForSelectTreeNode();//得到选中的树节点中包含的组件的方法!(自己写)
                if (com== null)
                {
                    return;
                }
                
                jPanel1.add(com);
            }
    }