Java JTree – 如何检查节点是否显示?
作者:互联网
寻找如何遍历JTree(可以这样做)并检查每个节点是否显示(对用户)或不可见.不能相信JTree没有这个功能,也许我错过了什么?
解决方法:
你必须考虑两件事:
>关闭其中一个父节点可以隐藏节点.即使父母在屏幕上可见,但孩子却不是.使用JTree.isVisible()就可以了.
>如果节点被展开,它可能会被隐藏,因为它被滚动到当前的viewport之外.这不是在JTree中处理的,而是在包装树的JScrollPane中处理的.确定节点是否位于视口的可见区域中.
要确定#2是否为true,必须获取节点使用的矩形JTree.getPathBounds().然后,必须将此矩形与视口相交(使用scrollPane.getViewport().getViewRect().如果nodeRect.intersects(viewRect)返回true,节点可见.
标签:jtree,java,swing 来源: https://codeday.me/bug/20190730/1582494.html