我需要遍历 Blackberry 中的 Tree Field 。我需要知道如何从现有节点检查它是父节点还是子节点?因为我需要子行和父行不同的行颜色
我已经提到了以前的自定义 TreeField 问题,如下面的链接所示
我需要遍历 Blackberry 中的 Tree Field 。我需要知道如何从现有节点检查它是父节点还是子节点?因为我需要子行和父行不同的行颜色
我已经提到了以前的自定义 TreeField 问题,如下面的链接所示
看起来您已经在使用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
}
}
假设您所说的“孩子”是指没有更多自己的孩子的行(也称为“叶”节点)。
如果您认为一个节点同时具有自己的非根父节点和自己的子节点是“子”行,则使用以下逻辑:
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
}
}
第二个实现只会将根节点正下方的行着色为“父母”。