JScrollPane 内で JTextArea を使用するカスタム CellEditor を持つ JTable があります。マウスクリックで編集モードに入ると完全に機能します。ただし、セルがフォーカスされているときに文字を入力しようとすると、何も起こりません。セルは「編集モード スタイル」を取得しますが (背景が変更されます)、空のままです...
何か案が ?
public class MultiLineCellEditor extends DefaultCellEditor {
JTextArea textArea;
JScrollPane scrollPane;
public MultiLineCellEditor( final JTable table ) {
super( new JTextField() );
getComponent().setName( "Table.editor" );
setClickCountToStart( 2 );
textArea = new JTextArea();
scrollPane = new JScrollPane();
scrollPane.setViewportView( textArea );
editorComponent = scrollPane;
}//end MultiLineCellEditor
public Component getTableCellEditorComponent( JTable table, Object value, boolean isSelected,
int row, int column ) {
this.setValue( value );
scrollPane.setBorder( new LineBorder( Color.black ) );
return scrollPane;
}
public void setValue( Object value ) {
textArea.setText( ( value != null ) ? value.toString() : "" );
}
public Object getCellEditorValue() {
return textArea.getText();
}
}//end class