0

让我举个例子吧。此代码在管理器中工作:

protected boolean navigationMovement(int dx, int dy, int status, int time) {
        int focusIndex = getFieldWithFocusIndex();

        while (dy > 0) {
            if (focusIndex + columnwidth.length >= getFieldCount()) {
                return false;
            } else {
                Field f = getField(focusIndex + columnwidth.length);
                if (f.isFocusable()) {
                    f.setFocus();
                    dy--;
                }
            }
        }

        while (dy < 0) {
            if (focusIndex - columnwidth.length < 0) {
                return false;
            } else {
                Field f = getField(focusIndex - columnwidth.length);
                if (f.isFocusable()) {
                    f.setFocus();
                    dy++;
                }
            }
        }

        while (dx > 0) {
            focusIndex++;
            if (focusIndex >= getFieldCount()) {
                return false;
            } else {
                Field f = getField(focusIndex);
                if (f.isFocusable()) {
                    f.setFocus();
                    dx--;
                }
            }
        }

        while (dx < 0) {
            focusIndex--;
            if (focusIndex < 0) {
                return false;
            } else {
                Field f = getField(focusIndex);
                if (f.isFocusable()) {
                    f.setFocus();
                    dx++;
                }
            }
        }
        return true;
}

现在我的屏幕像这样添加了 3 个不同的经理。

add(new Custom_TopField(this, 0, -1, "", 1, 1));
add(new Custom_BottomField(this, 0));
add(new Custom_HeaderField(Config_GlobalFunction.latest));

除了extends Manager当我下降时,它也会向左而不是底部。

4

1 回答 1

0

我找到了一个解决方案,但这个解决方案根本不实用。我在一个 java 类中创建了所有类。因此,该类不能被重用。

于 2012-08-07T03:22:44.993 回答