2012-06-22 2 views
0

Это меня действительно сбивает с толку. Пока я покажу свой код. Я пытаюсь сделать редактирование определенного поля. Это конечная цель, но я просто попытался установить JCheckBox только для тестирования. Но даже это не работает.JXTreeTable - мой узел доступен для редактирования, но другие ячейки не являются

Не могли бы вы взглянуть на это. Я был бы очень признателен.

Все JXTreeTable делает мои узлы доступными для редактирования. который я не хочу, так же как если бы я менял свой узел, его редактирование будет сохраняться через всю строку, которая тоже мне не нужна.

Вот что я сделал:

Intialization

JXTreeTable table = new JXTreeTable(Shared.model); 
table.setDefaultEditor(Object.class, new ComplexCellEditor()); 
table.setRootVisible(false); 
table.setEditable(true); 
table.getColumnModel().getColumn(0).setPreferredWidth(200); 
table.setColumnControlVisible(true); 

Это мой ComplexCellEditor.java

class ComplexCellEditor extends DefaultCellEditor{ 
public ComplexCellEditor() { 
    super(new JTextField()); 
    Console.t("here"); 
} 
public Component getTreeCellEditorComponent(JTree tree, Object value, boolean isSelected, boolean a, boolean b, int row) 
{ 
    Component component = super.getTreeCellEditorComponent(tree, value, isSelected, a , b, row); 

     Console.t("here"); <--**//THIS DOESN'T EVEN GET PRINTED** 
     JCheckBox chk= new JCheckBox(); 
     return chk; 
} 

}

Спасибо для вашего времени и усилий.

+1

Убедитесь, что ваш 'TreeTableModel' возвращает true для' isCellEditable'. – tenorsax

+0

@Max: поставьте это как ваш ответ, и я дам вам кредит. thanku – bluejamesbond

ответ

1

Убедитесь, что ваш TreeTableModel возвращает true для isCellEditable.

+0

Есть 2 метода isCellEditable: DDD – bluejamesbond