Вопрос

Я не уверен, как использовать ZK Hbox Array. Я пытаюсь создать массив компонентов ZK Hbox и использовать его в блоке для блока.

void createRow(Component container, final Node fieldNode, FieldCreator [] fieldDescription) {
    final Vbox fieldsRows = new Vbox();
    final Hbox fieldsRow = new Hbox();
    final Hbox[] fieldBox;

    int i=0;
    for (FieldCreator fieldDesc : fieldDescription) {
        fieldBox[i] = new Hbox();
        fieldDesc.createField(fieldNode, fieldBox[i]);
        i++;
    }
    fieldsRow.appendChild(fieldBox[]);
    Button removeFieldButton = new Button(Messages.getString("MXFC_removeFieldButton")); //$NON-NLS-1$
    fieldsRow.appendChild(removeFieldButton);
    fieldsRows.appendChild(fieldsRow);
    removeFieldButton.addEventListener(Events.ON_CLICK, new EventListener() {
        public void onEvent(Event event) throws Exception {
            fieldNode.getParentNode().removeChild(fieldNode);
            fieldBox[].setParent(null);
        }
    });
    container.appendChild(fieldsRows);
}

Код выше неверный. Компилятор бросает ошибку: «Синтаксисная ошибка на токене» [«, выражение ожидается после этого токена». на линии:

fieldsRow.appendChild(fieldBox[]);
fieldBox[].setParent(null);

Как это исправить?

Спасибо, Sony

Это было полезно?

Решение

Sony,

В вашем Java есть несколько синтаксических ошибок.

  1. Fieldbox [] ничего не значит здесь, в Java.
  2. Вам нужно инициализировать полевой ящик, прежде чем вы сможете назначить значение его записям.

Чтобы исправить эти проблемы, мы должны понимать, что вы хотите достичь в этом кусочке кода. На основе моего предположения, вы должны

  1. Инициализировать полевой ящик.

    Hbox[] fieldBox = new Hbox[fieldDescription.length];
  2. Итайте через колонны, когда вы добавляете / отсоединяете детей ряд.

    for(int i=0; i<fieldBox.length; i++) fieldsRow.appendChild(fieldBox[i]);
    for(int i=0; i<fieldBox.length; i++) fieldBox[i].setParent(null);
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top