Как прикрепить данные к TreeItem в SWT/Java?
Я начинаю использовать инструментарий SWT GUI в Java. У меня есть необходимость прикрепить некоторые данные к TreeItems. У каждого набора инструментов, который я ранее использовал, был элемент дерева, который содержал необработанный указатель или ссылку на базовый объект, чтобы обеспечить базовое хранение данных, но я не могу найти его в TreeItem в SWT.
Как я могу прикрепить данные к TreeItem?
3 ответа
Ответ: с чистым SWT вы не можете.
Стандартный Widget Toolkit заботится только о виджетах, их иерархии и визуальном представлении. Привязка данных к виджетам является темой более продвинутой среды JFace (особенно это средства привязки данных), которая основана на SWT. Вам нужно некоторое время, чтобы освоить его, но, следовательно, вы получаете всю мощь платформы Eclipse. Позволяет привязать модель к просмотру даже в обоих направлениях.
(→ изменение объекта модели немедленно отражается на пользовательском интерфейсе и наоборот).
В настоящее время вам придется вести отдельный список элементов и работать с индексами.
Это просто
TreeItem treeItem = new TreeItem(tree, SWT.NONE);
treeItem.setData("key", obj);
при получении данных:
Object obj = treeItem.getData("key");
В SWT 4.2 и, возможно, в более ранних версиях (хотя я не проверял) класс TreeItem
это подкласс Widget
, а также Widget
имеет setData(Object o)
а также getData()
, Вы можете использовать это, чтобы прикрепить произвольные, специфичные для приложения данные к TreeItem
экземпляров.