редактор настроек для JTextArea в JTable

У меня есть JTable с редактируемыми полями. Работает следующий код:

protected JTable m_table;
protected MyTable m_data;
m_data = new VIPTable(this, title);
m_table = new JTable();
for (int k = 0; k < MyTable.m_columns.length; k++) {
    DefaultTableCellRenderer textRenderer = new DefaultTableCellRenderer();
    textRenderer.setHorizontalAlignment(MyTable.m_columns[k].m_alignment);
    TableCellRenderer renderer = textRenderer;
    TableCellEditor editor;
    if (k==MyTable.COL_CATEGORY)
        editor = new DefaultCellEditor(new JComboBox(MyTable.CATEGORIES));
    else
        editor = new DefaultCellEditor(new JTextField());  // error with JTextArea
    TableColumn column = new TableColumn(k, MyTable.m_columns[k].m_width, 
                              renderer, editor);
    m_table.addColumn(column); 
}

Теперь я хочу сделать текстовые поля многострочными, поэтому я попытался заменить JTextField на JTextArea. Но конструктора для DefaultCellEditor(JTextArea) нет.

Итак: как закодировать редактируемое многострочное поле в JTable?

Примечание. Я также рассмотрел решение в PopupEditor, но возникает та же проблема, когда я заменяю JTextField на JTextArea.


person R71    schedule 21.08.2014    source источник
comment
Вы можете использовать любой класс в качестве редактора, реализовав свой собственный AbstractCellEditor, как описано в docs.oracle.com/javase/tutorial/uiswing/components/   -  person DSquare    schedule 21.08.2014
comment
не требуется AbstractCellEditor, потому что стандартный TableCellRenderer имеет координаты строки и столбца, то же самое для TableCellEditor   -  person mKorbel    schedule 21.08.2014
comment
@mKorbel: Не могли бы вы уточнить, как это можно сделать? Если вы можете показать, адаптировав полный пример из Popup, это мне очень поможет. Спасибо.   -  person R71    schedule 21.08.2014
comment
решение находится в Multiline JTable   -  person R71    schedule 21.08.2014
comment
@Rog, I also looked at the solution in PopupEditor, but that has the same problem when I replace JTextField with JTextArea. - зачем вам менять JTextField на JTextArea? Код, представленный там, является полным решением. Здесь нечего менять, если только вы не хотите дополнительно настраивать поведение.   -  person camickr    schedule 21.08.2014