请问为什么我的树形控件初始显示时节点文字没有全部显示出来(如图)
当点击展开节点再收缩时,节点文字就全部显示出来了呢?(如图)  
同时请问如何设置Scrollpane的大小,要求它不可改变。如图,在初始显示时,面板大小分割在菜单项的矿产资源成果图的矿产两字位置 
而当点击展开树形控件后,ScrollPane面板大小分割位置却跑到了远景分析菜单项了 
 这里时我的部分java代码: 
//最底部的面板 
private JPanel getDownPanel() 

if (downPanel == null) 

GridBagConstraints gridBagConstraints1 = new GridBagConstraints(); 
gridBagConstraints1.fill = GridBagConstraints.BOTH; 
gridBagConstraints1.gridx = 0; 
gridBagConstraints1.gridy = 0; 
gridBagConstraints1.weighty = 1.0; 
gridBagConstraints1.weightx = 1.5; 
GridBagConstraints gridBagConstraints2 = new GridBagConstraints(); 
gridBagConstraints1.gridx = 1; 
gridBagConstraints1.gridy = 0; 
gridBagConstraints2.fill = GridBagConstraints.BOTH; 
gridBagConstraints2.weighty = 1.0; 
gridBagConstraints2.weightx = 8.5; 
downPanel = new JPanel(); 
downPanel.setLayout(new GridBagLayout()); 
                        //放置树形控件的ScrollPane 
downPanel.add(getTreeScrollPane(), gridBagConstraints1); 
                        //放置其它面板的CardPanel 
downPanel.add(getCardPanel(), gridBagConstraints2); 

return downPanel; 
}
不好意思,本人图片插不进去。帖子中提到的图片请在这里去看
http://photos.i.cn.yahoo.com/gousheng12345/d73048/

解决方案 »

  1.   


    //参考代码
     public void expandAll(JTree tree, boolean expand) {
           TreeNode root = (TreeNode)tree.getModel().getRoot();  
           // Traverse tree from root
           expandAll(tree, new TreePath(root), expand);
       }
       private void expandAll(JTree tree, TreePath parent, boolean expand) {
           // Traverse children
           TreeNode node = (TreeNode)parent.getLastPathComponent();
           if (node.getChildCount() >= 0) {
               for (Enumeration e=node.children(); e.hasMoreElements(); ) {
                   TreeNode n = (TreeNode)e.nextElement();
                   TreePath path = parent.pathByAddingChild(n);
                   expandAll(tree, path, expand);
               }
           }  
           // Expansion or collapse must be done bottom-up
           if (expand) {
               tree.expandPath(parent);
           } else {
               tree.collapsePath(parent);
           }