Here you can find the source of isTreePathExpandable(TreeModel treeModel, TreePath treePath)
public static boolean isTreePathExpandable(TreeModel treeModel, TreePath treePath)
//package com.java2s; /*// www . ja v a2 s. com * The contents of this file are subject to the terms of the Common Development * and Distribution License (the License). You may not use this file except in * compliance with the License. * * You can obtain a copy of the License at http://www.netbeans.org/cddl.html * or http://www.netbeans.org/cddl.txt. * * When distributing Covered Code, include this CDDL Header Notice in each file * and include the License file at http://www.netbeans.org/cddl.txt. * If applicable, add the following below the CDDL Header, with the fields * enclosed by brackets [] replaced by your own identifying information: * "Portions Copyrighted [year] [name of copyright owner]" * * The Original Software is NetBeans. The Initial Developer of the Original * Software is Sun Microsystems, Inc. Portions Copyright 1997-2007 Sun * Microsystems, Inc. All Rights Reserved. */ import javax.swing.tree.TreeModel; import javax.swing.tree.TreePath; public class Main { public static boolean isTreePathExpandable(TreeModel treeModel, TreePath treePath) { if (treeModel == null) return false; if (treePath == null) return false; return !treeModel.isLeaf(treePath.getLastPathComponent()) && isTreePathInModel(treeModel, treePath); } public static boolean isTreePathInModel(TreeModel treeModel, TreePath treePath) { if (treeModel == null) return false; if (treePath == null) return false; TreePath parentPath = treePath.getParentPath(); if (parentPath == null) { return treeModel.getRoot() == treePath.getLastPathComponent(); } if (!isTreePathInModel(treeModel, parentPath)) return false; Object node = treePath.getLastPathComponent(); Object parent = parentPath.getLastPathComponent(); return treeModel.getIndexOfChild(parent, node) >= 0; } }