每个tree都有个model,互换即可

解决方案 »

  1.   

    同意楼上,不过互换model后还要通知一下
      

  2.   

    另一种实现:
    /*
     * Created on 2004-3-17
     *
     * To change the template for this generated file go to
     * Window - Preferences - Java - Code Generation - Code and Comments
     */
    package test.org.brunt.applet;

    /**
     * @author ht
     *
     * To change the template for this generated type comment go to
     * Window - Preferences - Java - Code Generation - Code and Comments
     */

    import javax.swing.*;
    import javax.swing.border.Border;

    import java.awt.*;
    import java.awt.event.*; import java.util.*;

    public class TestAppletTree extends JApplet
    {
    Border objBorder = BorderFactory.createTitledBorder("Object []"),
    vectorBorder =BorderFactory.createTitledBorder("Vector []");
    boolean isClick = false;
    JScrollPane objPane,vectorPane;
    JTree vectorTree,objectTree;
    Vector vector=new Vector();
    Object [] objs=new Object[] {"array item 1","array item 2","array item 3"};
    JButton button=new JButton("convert");
    public void init()
    {
    Container contentPane=getContentPane();

    vector.addElement("Vector element 1");
    vector.addElement("Vector element 2");
    vector.addElement("Vector element 3");
    vector.addElement("Vector element 4");
    vector.addElement("Vector element 5");

    vectorTree=new JTree(vector);
    objectTree=new JTree(objs);

    objPane=new JScrollPane();
    vectorPane=new JScrollPane();

    showViewPort();

    objPane.setPreferredSize(new Dimension(150,150));
    vectorPane.setPreferredSize(new Dimension(150,150));



    contentPane.setLayout(new FlowLayout());

    contentPane.add(objPane);
    contentPane.add(vectorPane);
    contentPane.add(button);

    button.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent e)
    {
    showViewPort();
    isClick = !isClick;
    }});
    }
    public void showViewPort()
    {
    if(isClick)
    { objPane.getViewport().add(vectorTree);
    vectorPane.getViewport().add(objectTree);
    objPane.setBorder(vectorBorder);  
    vectorPane.setBorder(objBorder);
    }
    else
    { objPane.getViewport().add(objectTree);
    vectorPane.getViewport().add(vectorTree);
    objPane.setBorder(objBorder);  
    vectorPane.setBorder(vectorBorder);
    }

    }
    }