JTree:如何获取所有项目的文本? [英] JTree: how to get the text of all items?
本文介绍了JTree:如何获取所有项目的文本?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我希望以格式获取JTree的文本:
I want to get text of an JTree in format:
root
sudir1
node1
node2
subdir2
node3
node4
是吗可能?
我写了一些代码
public static String getLastSelectedText(JTree tree) {
DefaultMutableTreeNode node = (DefaultMutableTreeNode) tree.getLastSelectedPathComponent();
if (node == null) return null;
return node.getUserObject().toString();
}
但它只获得选定的组件文本。
But it get only selected component text.
我考虑扩展树并处理所有节点,但也许不太好主意。
I think about expand tree and handle all nodes, but maybe it bad idea.
推荐答案
我认为你不应该在一个函数中构建字符串 - 但我不知道你的问题究竟是针对什么的。
I think you shouldn't build the string within a single function - but I do not know what exactly you aim at with your question.
为了使我的答案尽可能接近你建议的功能尽可能尝试这样:
In order to keep my answer as close to your suggested function as possible you may try something like this:
TreeModel model = tree.getModel();
System.out.println(getTreeText(model, model.getRoot(), ""));
带递归函数 getTreeText
private static String getTreeText(TreeModel model, Object object, String indent) {
String myRow = indent + object + "\n";
for (int i = 0; i < model.getChildCount(object); i++) {
myRow += getTreeText(model, model.getChild(object, i), indent + " ");
}
return myRow;
}
getTreeText
需要三个参数
-
model
:我们请求树节点的模型 -
object
:我们要求字符串表示的对象(包括所有孩子) -
缩进
:缩进级别
model
: The model which we request for tree nodesobject
: The object we ask a string representation for (including all children)indent
: indentation level
这篇关于JTree:如何获取所有项目的文本?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文