public class User extends JFrame {

private JTree tree = null;
private JTextArea txt = new JTextArea();
private JTable table =null;
private DefaultTableModel mode =null;

User(){
setTitle("用户管理");
setSize(500,400);
JPanel pane = new JPanel(null);
setContentPane(pane);
setDefaultCloseOperation(EXIT_ON_CLOSE);

//设置窗体位置在
setLocationRelativeTo(null);
//创建书籍类型节点
DefaultMutableTreeNode root=
new DefaultMutableTreeNode("书籍类型"); //创建书籍节点
DefaultMutableTreeNode f1=
new DefaultMutableTreeNode("个人资料");

DefaultMutableTreeNode f2=
new DefaultMutableTreeNode("书库查询");


root.add(f1);
root.add(f2);
//实例化tree
tree=new JTree(root);
//设置tree的位置和大小
tree.setBounds(10, 20, 100, 200);

//添加tree到Pane
pane.add(tree);

//添加其他组件
JPanel rightPane=new JPanel(new BorderLayout());

rightPane.add(txt,BorderLayout.CENTER);
rightPane.setBackground(Color.darkGray);

txt.setBackground(Color.darkGray);
txt.setForeground(Color.WHITE);
txt.setFont(new Font("黑体",Font.TYPE1_FONT,18));

rightPane.setBounds(120, 10, 350, 180);

pane.add(rightPane);



//-----添加tree的事件--------
tree.addTreeSelectionListener(new TreeSelectionListener() {

@Override
public void valueChanged(TreeSelectionEvent e) {
new ShowUsersFrame();
}
});

//-----------------------------------------
mode=new DefaultTableModel();

mode.setColumnIdentifiers(
new String[]{"书目编号","书名","类型1","类型2",
"作者","归还日期"});

table=new JTable(mode);
JScrollPane js=new JScrollPane(table);
//-----------------
pane.add(js);
js.setBounds(120, 200, 350, 170);


setVisible(true);
}



public static void main(String[] args) {
new User();
}}

解决方案 »

  1.   

    节点的click加个Listener,然后新开窗口。
      

  2.   

    将程序中的new ShowUsersFrame();改成 if (e.getPath().toString().indexOf("书库查询") >= 0){
    new ShowUsersFrame();
        }就ok了
      

  3.   

     将代码中的new ShowUsersFrame();改成 if (e.getPath().toString().indexOf("书库查询") >= 0){
    new ShowUsersFrame();
        }就ok了