我需要穿越黑莓中的树田。 我需要知道如何从现有节点检查它是父节点还是子节点? 因为我需要Child行和Parent行的不同行颜色
我之前提到过定制TreeField的问题,如下面的链接所示
答案 0 :(得分:1)
看起来您已经在使用TreeFieldCallback
来自定义树场的绘制。您可以在drawTreeItem()中检测父节点与子节点。
但是,我们需要清楚你认为“父母”和“孩子”是什么,因为从技术上讲,如果树有一行,那么 父母和孩子都有可能超过2个级别(除了根级别)。
使用:
public void drawTreeItem(TreeField treeField, Graphics graphics, int node, int y, int width, int indent) {
boolean isChild = treeField.getFirstChild(node) == -1;
if (isChild) {
// draw child row color
} else {
// draw parent row color
}
}
假设“child”的意思是一行,它没有自己的子句(也称为“叶子”节点)。
如果您认为某个节点同时拥有自己的和的非根父级别的子节点是“子”行,那么请使用以下逻辑:
public void drawTreeItem(TreeField treeField, Graphics graphics, int node, int y, int width, int indent) {
boolean isParent = treeField.getParent(node) == 0;
if (isParent) {
// draw parent row color
} else {
// draw child row color
}
}
第二个实现只会将根节点下直接的行标记为“父”。