我用Java Swing做个界面,左边是一个树,右边需要显示左边树某个节点的信息。
比如:
我点左边树的学生节点,则右边显示学生的信息,我要是点班级则显示班级的信息,学校、老师也都有节点。
现在就出了一个问题:
左边是树,右边要显示不同的JPanel,我该怎么弄呢?
1.利用多文档界面,点击左边不同的节点显示不同的窗口,这些窗口重叠。
2.利用JTabbedPane(选项卡),每点击一个新节点就新增一个页签。
我倾向于第二种,因为比较容易实现,但是碰到一个问题:
我点了某个学生的节点,右边显示了这个学生信息,我再点击另外一个学生节点,右边新增一个新学生的信息页签,我要是再在左边树里面点原来那个学生的信息呢(不能新增页签显示信息了,因为第一次点击已经显示这个学生的信息了)?
选项卡怎么跳回到第一个学生信息的界面?如果这个方案不行,多文档界面大概应该如何处理?

解决方案 »

  1.   

    我建议  你固定几种面板:学生的  老师的  班级的  学校的(比如这四种)
    每次点选不同的节点,只在右面的相应面板中显示一个就好了。如果你用JTabbedPane,那如果我点过100个不一样的学生,你的画面会乱到不行了。
    右面可以用布局管理器  或者平铺也行~
      

  2.   

    右面使用cardlayout布局。根据选择的节点类型显示不同的面板,
      

  3.   

    谢谢楼上各位啦。我用JTabbedPane来实现的,点击一个节点,右边就新增一个页签来显示和编辑这个节点信息。每点击一个节点,就把这个节点带的对象放到HashSet中,再次点击这个节点的时候,先判断HashSet是否含有这个对象,如果有就不增加页签了,没有才增加页签。但是,还有个小问题:
    我按顺序点了三个节点,这样右边就按顺序有三个页签,最后点击的页签弹出显示,我重新点第一个节点的时候,怎么让第一个页签弹出显示呢(先用弹出这个词,实际应该是JTabbedPane的setSelectedIndex方法如何得到那个页签的index)?