Как использовать ZK Hbox Array?
-
04-10-2019 - |
Вопрос
Я не уверен, как использовать 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 есть несколько синтаксических ошибок.
- Fieldbox [] ничего не значит здесь, в Java.
- Вам нужно инициализировать полевой ящик, прежде чем вы сможете назначить значение его записям.
Чтобы исправить эти проблемы, мы должны понимать, что вы хотите достичь в этом кусочке кода. На основе моего предположения, вы должны
Инициализировать полевой ящик.
Hbox[] fieldBox = new Hbox[fieldDescription.length];
Итайте через колонны, когда вы добавляете / отсоединяете детей ряд.
for(int i=0; i<fieldBox.length; i++) fieldsRow.appendChild(fieldBox[i]);
for(int i=0; i<fieldBox.length; i++) fieldBox[i].setParent(null);
Не связан с StackOverflow