code: private JTree getTreeParam() {
          if (treeParam == null) {
              treeParam = new JTree();
              treeParam.setModel(getTreeModel());
              treeParam.setShowsRootHandles(true);
              treeParam.setRootVisible(true);
              treeParam.addTreeSelectionListener(new javax.swing.event.TreeSelectionListener() {
                  @Override
                  public void valueChanged(javax.swing.event.TreeSelectionEvent e) {
  
                      DefaultMutableTreeNode node = (DefaultMutableTreeNode) getTreeParam().getLastSelectedPathComponent();
                      if (node == null) {
                          return;
                      }
                      String name = (String) node.getUserObject();
                      showParamPanel(name);
                  }
              });
          
              DefaultTreeCellRenderer renderer = new DefaultTreeCellRenderer();
              renderer.setLeafIcon(null);
              renderer.setOpenIcon(null);
              renderer.setClosedIcon(null);
              treeParam.setCellRenderer(renderer);
  
              treeParam.setRowHeight(DisplayUtils.getScaledSize(18));
              treeParam.addMouseListener(new MouseAdapter() {
  
                  @Override
                  public void mousePressed(MouseEvent e) {
                      TreePath path = treeParam.getClosestPathForLocation(e.getX(), e.getY());
                      if (path != null && !treeParam.isPathSelected(path)) {
                          treeParam.setSelectionPath(path);
                      }
                  }
              });
          }
          
          return treeParam;
      }
docs: This method initializes treeParam
  
  @return javax.swing.JTree