2016-08-03 2 views
0

У меня вопрос, основанный на TreeTableViews и его строках. Я создал treetableview объектов, которые я назвал Component, и у меня есть 3 класса компонента, которые я назову A, B и C. В моем проекте объекты B содержатся в A, а объекты C содержатся на B объекты. Я смог показать TreeTableView с этими 3 уровнями Компонентов, но теперь я хотел бы добавить CSS в эту таблицу, чтобы иметь определенные характеристики:TreeTableView с разным размером узлов в javaFX

-Первый из всего, что мне хотелось бы Размер объектов быть больше, чем объекты в и то же самое для C, для этого T пытался питания, как это основано на том, что я видел в интернете:

.tree-table-cell { 
    -fx-font-size: 11pt; 
} 

.tree-table-cell:sub-tree-item { 
    -fx-font-size: 9pt; 
} 

Но, похоже, это не работает ...

-Тогда я хотел бы иметь возможность иметь разделитель между каждым компонентом А, только для видимости таблицы

-И наконец, я бы хотел, чтобы выбранный элемент и весь его узел дерева (если выбрано C, это означает, что элемент C + его родительский B +, его родительский A) должен быть полужирным или что-то, чтобы идентифицировать его напрямую. Для этого я попытался применить несколько простых CSS в этом классе:

.tree-item:selected { 
    -fx-font-weight: bold; 
} 

без успеха ...

На самом деле я не в состоянии управлять моим, как я элементы дерева хотел (добавив некоторый StyleSheets Class в TreeItem невозможно).

Надеюсь, я был достаточно ясен. Спасибо за вашу помощь

ответ

0

Я использовал TreeTableView и успешно применял стили, основанные на разных критериях. Мой подход заключался в применении стилей к TreeTableRow (но я думаю, что камера тоже будет работать). Строку не так просто получить ссылку (по крайней мере, я не видел простой способ). Один из способов доступа к ней - добавить фабрику строк. На заводе я добавил обработчики перетаскивания. Однако для стилизации я использовал пользовательские ячейки (так как я нуждался в них для редактирования). В методе updateItem этих пользовательских ячеек я бы получил строку и изменил стиль. Это было необходимо, потому что строки были виртуализированы и повторно использованы. Я обнаружил, что мне приходилось проверять «пустые» строки во время вызова updateItem и удалять стиль (который в моем случае включал красную рамку для «недопустимых» элементов).

Что касается псевдо классов в CSS, я бы посоветовал убедиться, что вы используете правильные. Если вы не используете встроенный псевдокласс, вам придется сделать его в коде, а затем зарегистрировать его с классом, который вы пытаетесь создать. Я нашел один website с некоторой информацией, но если вы выполните поиск, я уверен, что есть дополнительная информация.

Я не думаю, что сам элемент поддерживает стилизацию (как вы отметили). Я вижу это скорее как модель/класс данных (по сравнению с пользовательским интерфейсом).

Смежные вопросы