我正在尝试修改标准SwingJTree以混合带有和不带复选框的节点。这是一个例子:当我尝试选中/取消选中其中一个复选框(本例中的“用户01”节点)时,树会丢失节点:我的代码是对这个例子的改编:http://forums.sun.com/thread.jspa?threadID=5321084&start=13.而不是像这样在DefaultMutableTreeNode中嵌入JCheckBox:newDefaultMutableTreeNode(newCheckBoxNode("Accessibility",true));我认为创建一个派生自DefaultMutableTreeNode的
我需要一个例子,如何添加一个键盘处理程序来检测何时Ctrl+C,Ctrl+X,Ctrl+C在JTree上按下。我以前用菜单快捷键这样做,但没有成功。 最佳答案 您可以将KeyListeners添加到任何组件(f)f.addKeyListener(newKeyListener(){@OverridepublicvoidkeyTyped(KeyEvente){}@OverridepublicvoidkeyPressed(KeyEvente){if((e.getKeyCode()==KeyEvent.VK_C)&&((e.getModif
首先,让我声明一下,我不使用DefaultTreeModel。我实现了我自己的TreeModel,所以我不能使用DefaultXXX东西。问题是这样的:通过我的模型定义的一些addStuff()方法,我将节点添加到底层数据结构。然后我通过在addStuff()函数中调用treeNodesChanged()来通知听众(我知道有treeNodesInserted方法,但它是一回事。它只是用不同的方法通知听众)。现在,其中一个监听器是我的主窗体中的一个静态类,这个监听器可以告诉JTree(它也包含在我的主窗体中)自行刷新。我如何告诉JTree从模型中“重新加载”它的部分或全部节点?更新:找到
我有一个自定义树单元格渲染器,我用它来渲染自定义图标JTree,我真的很喜欢JOptionPane分别为警告消息和错误消息显示的警告图标和错误图标。显然,我可以使用以下代码来获取我自己使用的图标,但这太麻烦了,需要我实例化我永远不会使用的对话框:publicclassValidationCellRendererextendsDefaultTreeCellRenderer{privateIconwarnIcon;privateIconerrorIcon;publicValidationCellRenderer(){JOptionPaneoptionPane=newJOptionPane(
我有一个自定义的JTree和一个自定义的JModel;当我给它一个新模型时,我希望JTree能够“自动扩展”。目前,它只是将所有节点折叠到根。这是一个例子:privateclassCustomTreeextendsJTree{@OverridepublicbooleanisExpanded(TreePathpath){return((Person)path.getLastPathComponent).hasChildren();}privateclassCustomTreeModelextendsTreeModel{//...omittingvariousimplementationd
由于JTree和TreeModel不直接提供开箱即用的工具提示,您认为为JTree提供特定于项目的工具提示的最佳方式是什么?编辑:(之后回答我自己的问题。)@Zarkonnen:感谢getTooltipText的想法。我发现了另一种(也许仍然更好)覆盖DefaultTreeCellRenderer的方法并想分享它:publicclassJTreeWithToolTips{privatestaticclassOwnRendererextendsDefaultTreeCellRenderer{@OverridepublicComponentgetTreeCellRendererCompon
Closed.Thisquestionisopinion-based。它当前不接受答案。想改善这个问题吗?更新问题,以便editingthispost用事实和引用来回答。2年前关闭。Improvethisquestion问题在JTree上应用过滤以避免某些节点/叶出现在JTree的呈现版本中。理想情况下,我正在寻找一种允许使用动态过滤器的解决方案,但是如果能够使用静态过滤器,我已经很高兴了。为了使操作更简单,让我们假设JTree仅支持渲染,不支持编辑。移动,添加,删除节点应该是可能的。一个示例是JTree上方的搜索字段,并且键入JTree只会显示具有匹配项的子树。有一些限制:它必须在有
Closed.Thisquestionisopinion-based。它当前不接受答案。想改善这个问题吗?更新问题,以便editingthispost用事实和引用来回答。2年前关闭。Improvethisquestion问题在JTree上应用过滤以避免某些节点/叶出现在JTree的呈现版本中。理想情况下,我正在寻找一种允许使用动态过滤器的解决方案,但是如果能够使用静态过滤器,我已经很高兴了。为了使操作更简单,让我们假设JTree仅支持渲染,不支持编辑。移动,添加,删除节点应该是可能的。一个示例是JTree上方的搜索字段,并且键入JTree只会显示具有匹配项的子树。有一些限制:它必须在有
我需要向JTree添加复选框。自定义TreeCellRenderer/TreeCellEditor似乎是正确的方法。到目前为止,我使用了theCheckBoxNodeRendererapproachinthiswebpage.它工作正常,除了两件事:复选框上方+下方有额外的空格;我想让它与常规JTree保持一致。我想区分单击复选框本身(应尝试切换复选框)和单击与复选框关联的文本(应允许事件监听器将此解释为单击相应的树节点和采取任何适当的行动)有办法做到这些吗?我四处寻找带有复选框的JTrees,找不到太多。JIDE看起来不错,但在这种情况下我需要使用免费的开源软件(GPL不行,LGPL
我想为我的JTree中的每个节点设置一个不同的图标,实际上我是从数据库加载每个节点,“while”,我将每个图标设置为根、叶或父节点。像这样:我所有的声明都是全局的:privateResultSetmyResultSet;protectedDefaultTreeModeltreeModel;privateDefaultMutableTreeNoderootNode,childNode,parent1,parent2;这是我设置节点的代码:myResultSet=rtnNodes();/*MethodthatreturnsaRSwithmynodes*/while(myResultSet