在JTable中设置JTextArea的编辑器

时间:2014-08-21 08:50:44

标签: java swing jtable tablecellrenderer

我有一个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); 
}

我现在想让文本字段成为多行,所以我尝试用JTextArea替换JTextField。但是没有DefaultCellEditor(JTextArea)的构造函数。

那么:如何在JTable中编写可编辑的多行字段?

注意:我也查看了PopupEditor中的解决方案,但是当我用JTextArea替换JTextField时,这也有同样的问题。

0 个答案:

没有答案