私は自分のアプリケーションに nebula gridTableViewer を使用しています。そのセルでは、コンテンツが非常に長い場合があるため、WRAP (複数行) として表示したいと考えています。私はそれを変更しましたが、反映されていません:
追加しましSWT.WRAP
たが機能しません。LabelProvider でテキストをラップしようとしましたが、機能しないのでどうすればよいですか?
これにはリスナーを追加する必要がありますか。
私は自分のアプリケーションに nebula gridTableViewer を使用しています。そのセルでは、コンテンツが非常に長い場合があるため、WRAP (複数行) として表示したいと考えています。私はそれを変更しましたが、反映されていません:
追加しましSWT.WRAP
たが機能しません。LabelProvider でテキストをラップしようとしましたが、機能しないのでどうすればよいですか?
これにはリスナーを追加する必要がありますか。
SWT.WRAP を gridTableViewer に追加しても、グリッド セル内のテキストが折り返されることはありません。gridColumn.setWordWrap(true) は、入力された値がエディターに適用された後 (setvalue が呼び出された後)、セルに入力されたテキストを折り返すようにします。テキストをインタラクティブにラップするには、SWT.WRAP をスタイルとして TextCellEditor またはセルに配置された Text ウィジェットに追加する必要があります。
gridViewerColumn.getColumn.setWordWrap(true);
gridTableViewer.setEditingSupport(new EditingSupport(gridTableViewer) {
....
@Override
protected CellEditor getCellEditor(Object element) {
TextCellEditor cellEditor = new TextCellEditor(gridTableViewer.getGrid(),
SWT.WRAP)
return cellEditor;
}
または
....
final GridItem item = grid.getItem(grid.getTopIndex());
for (int i = 0; i < grid.getColumnCount(); i++) {
final Text text = new Text(grid, SWT.WRAP);
Listener textListener = new Listener() {
public void handleEvent(final Event e) {
switch (e.type) {
case SWT.FocusOut:
item.setText(column, text.getText());
....
}
}
}
}
以前に TextCellEditor で SWT.WRAP を使用したことがありますが、機能します。