1

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
4

1 に答える 1