我正在研究星云网格表。我返回getToolTipText()
方法的字符串不适合多行,同时它显示在单行中。我使用以下代码来实现Multiline toooltip。但我仍然在单行中获得该字符串。
ColumnViewerToolTipSupport toolTipSupport = new ColumnViewerToolTipSupport(col.getViewer(), SWT.NONE, false) {
@Override
protected Composite createToolTipContentArea(Event event, Composite parent) {
Composite comp = new Composite(parent, SWT.NONE);
comp.setLayout(new FillLayout());
comp.setBounds(0, 0, 250, 250);
Text b = new Text(comp, SWT.LEFT);
b.setText(getText(event));
Activator.log("Text: " + getText(event), Status.INFO);
b.setBackground(new Color(null, 255, 0, 0));
b.setSize(250, 250);
// b.addSelectionListener(new SelectionAdapter() {
// @Override
// public void widgetSelected(SelectionEvent e) {
// hide();
// MessageBox box = new MessageBox(.getShell(),SWT.ICON_INFORMATION);
// box.setMessage("Hello World!");
// box.setText("Hello World");
// box.open();
// }
// });
return comp;
}
};
答案 0 :(得分:2)
如果您需要多行支持,则需要在SWT.MULTI
控件上指定Text
样式。
如果要包裹长行,也请指定SWT.WRAP
样式。
所以:
Text b = new Text(comp, SWT.LEFT | SWT.MULTI | SWT.WRAP);