package email;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.tree.*;
import javax.swing.event.TreeSelectionListener;
 
public abstract class MainFrame extends JFrame implements ActionListener ,TreeSelectionListener{
 abstract static void main(String args[])
  {
   MainFrame mf=new MainFrame();
   mf.setSize(new Dimension(450,450)); //设置窗体大小
    mf.setVisible(true);//显示窗体
   }
  }   JPanel contentPane;
  JSplitPane jSplitPane1 = new JSplitPane();
  JScrollPane jScrollPane1 = new JScrollPane();
  JTree jTree1 = new JTree();
  welcomePanel welcomePanel1=new welcomePanel();
  addPanel addPanel1=new addPanel();
  //Construct the frame
  public MainFrame() {
    enableEvents(AWTEvent.WINDOW_EVENT_MASK);
    try {
      jbInit();
    }
    catch(Exception e) {
      e.printStackTrace();
    }
  }
  //Component initialization
  private void jbInit() throws Exception  {
    contentPane = (JPanel) this.getContentPane();
    contentPane.setLayout(null);
    this.setSize(new Dimension(539, 470));
    this.setTitle("主窗体");
    jSplitPane1.setRequestFocusEnabled(true);
    jSplitPane1.setLastDividerLocation(150);
    jSplitPane1.setLeftComponent(jScrollPane1);
    jSplitPane1.setRightComponent(welcomePanel1);
    jSplitPane1.setBounds(new Rectangle(1, 0, 548, 470));
    DefaultMutableTreeNode root=new DefaultMutableTreeNode("邮件主动通讯录数据库系统");
        jTree1=new JTree(root);
     DefaultMutableTreeNode bitchThing=new DefaultMutableTreeNode("通讯录");
     root.add(bitchThing);
     DefaultMutableTreeNode bit=new DefaultMutableTreeNode("查询联系人");
     bitchThing.add(bit);
     bit=new DefaultMutableTreeNode("添加联系人");
     bitchThing.add(bit);
     bitchThing=new DefaultMutableTreeNode("发送邮件");
     root.add(bitchThing);
     bitchThing=new DefaultMutableTreeNode("发件箱");
     root.add(bitchThing);
     bitchThing=new DefaultMutableTreeNode("收件箱");
     root.add(bitchThing);
    jTree1.setEditable(false);
    contentPane.add(jSplitPane1, null);
    jSplitPane1.add(jScrollPane1, JSplitPane.LEFT);
    jScrollPane1.getViewport().add(jTree1, null);
    jSplitPane1.setDividerLocation(160);
    jSplitPane1.add(welcomePanel1,JSplitPane.RIGHT);
    jTree1.addTreeSelectionListener(this);
       int mode=TreeSelectionModel.SINGLE_TREE_SELECTION;
    jTree1.getSelectionModel().setSelectionMode(mode);
      String node=jTree1.getLastSelectedPathComponent().toString();
    if(node.equals("添加联系人")){
    jSplitPane1.remove(jSplitPane1.getRightComponent());
     jSplitPane1.add(addPanel1,JSplitPane.RIGHT);
    }
  }
  //Overridden so we can exit when window is closed
  protected void processWindowEvent(WindowEvent e) {
    super.processWindowEvent(e);
    if (e.getID() == WindowEvent.WINDOW_CLOSING) {
      System.exit(0);
    }
  }
}

解决方案 »

  1.   

    tree.addTreeSelectionListener(new
             TreeSelectionListener()
             {
                public void valueChanged(TreeSelectionEvent event)
                {
                try{
                    TreePath path = tree.getSelectionPath();
                    DefaultMutableTreeNode selectedNode
                      = (DefaultMutableTreeNode) path.getLastPathComponent();
                  if(!selectedNode.isRoot())
                      //当该结点非根结点时去操作
                  {
                      ResultSet result;
                      result=new AsatUtil().queryInfo(selectedNode.toString(),"PortTable");
                      if(result!=null)
                      {
                          panel.remove(scrollPane);
                          tablemodel = new ResultSetTableModel(result);
                          table=new JTable(tablemodel);
                          scrollPane = new JScrollPane(table);
                          table.setCellSelectionEnabled(true);
                          panel.add(scrollPane);
                          validate();
                      }
                      else{
    //                        panel.remove(scrollPane);
    //                        panel.add(new);
                      }
                  }
                }catch(Exception e){System.out.println(e.getMessage());} }
             });   }
    以前写的一个代码的部分 希望有帮助