2015-07-06 8 views
0

Я создаю JOutline, в котором есть комнаты, и внутри каждой комнаты есть несколько продуктов. Вы можете выбрать отдельный продукт и просмотреть данные, но мне также нужно будет установить флажки рядом с несколькими продуктами, используя флажок.Качающийся контур с флажком в столбце узла

Я особенно ищу способ установить флажок в крайнем левом углу объектов.

Есть ли способ сделать это, или мне лучше смотреть в JXTreeTable?

ответ

1

Как обсуждалось here, Outline требует вашей реализации интерфейса RowModel, который должен быть передан на ваш OutlineModel конструктор.

class MyRowModel implements RowModel {…} 
TreeModel myModel = new MyTreeModel(…); 
OutlineModel outlineModel = DefaultOutlineModel.createOutlineModel(
    myModel, new MyRowModel(), …); 
Outline outline = new Outline(); 
outline.setModel(outlineModel); 

В вашей реализации RowModel, следовать знакомому JTableedit/render scheme для модели значения типа Boolean:

  • getColumnClass() реализация должна возвращать Boolean.class для соответствующего столбца.

  • Реализация isCellEditable() должна возвращать true для соответствующей колонки.

  • Реализация getColumnClass() должна возвращать значение с данного узла в myModel.

  • Реализация setValueFor() должна обновлять данный узел, поэтому рендеринг увидит новое значение при завершении редактирования.

image

+0

я на самом деле она функционирует, как вы показали выше, но я искал способ, чтобы иметь флажок в столбце узла, я чувствую, что мне нужно сделать пользовательский Outline, что может принимать флажок в RenderDataProvider – Kyper

+0

AFAIK, поддерживаются только декорации RowModel. – trashgod

+0

Это был мой страх, но я хотел убедиться, спасибо за ваше время. – Kyper