我正在开发一个具有需要多行单元格的JTable的应用程序。因此我扩展了JTextArea并显示了所有内容,但是当我尝试编辑单元格时。文本显示在一行中,编辑后变为多行显示。我希望文本在编辑期间保持多线。 有没有办法做到这一点?
答案 0 :(得分:7)
使用JTextArea创建TableCellEditor(而不是使用JTextField的默认行为)并将其设置为JTable。
如果您愿意,也可以使用JEditorPane来支持文字样式。
---- Edit2 ----
New TableCellEditor:
class MyTableCellEditor extends AbstractCellEditor implements TableCellEditor {
JComponent component = new JTextArea();
public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected,
int rowIndex, int vColIndex) {
((JTextArea) component).setText((String) value);
return component;
}
public Object getCellEditorValue() {
return ((JTextArea) component).getText();
}
}