我正在创建一个自定义工具提示,其中我有一个文本框。我能够做到这一点,但我无法像附图中的图标那样获得气球。任何人都可以帮我解决这个问题。
Mytooltip课程:
public class MyToolTip extends ToolTip {
private Shell parentShell;
public MyToolTip(Control control) {
super(control,SWT.BALLOON,false);
this.parentShell = control.getShell();
}
@Override
protected Composite createToolTipContentArea(Event event, Composite parent) {
// TODO Auto-generated method stub
Composite comp = new Composite(parent,SWT.NONE);
comp.setLayout(new FillLayout());
Text text = new Text(comp,SWT.BORDER);
text.setText("");
return comp;
}
}
使用工具提示的类:
public static void main(String[] args) {
Display display = new Display();
Shell shell = new Shell(display);
shell.setLayout(new RowLayout(SWT.VERTICAL));
Text text = new Text(shell, SWT.BORDER);
text.setText("sample text field");
MyToolTip myTooltipLabel = new MyToolTip(text);
myTooltipLabel.setShift(new Point(-5, -5));
myTooltipLabel.setHideOnMouseDown(false);
myTooltipLabel.activate();
myTooltipLabel.setRespectDisplayBounds(false);
myTooltipLabel.setRespectMonitorBounds(false);
答案 0 :(得分:3)
问题是,您使用org.eclipse.jface.window.ToolTip
,而用于创建该屏幕截图的代码使用org.eclipse.swt.widgets.ToolTip
。
SWT工具提示可以通过将SWT.BALLOON
作为样式位来显示气球。
JFace工具提示不支持SWT.BALLOON
,仅支持ToolTip.NO_RECREATE
和ToolTip.RECREATE
。
所以这就是结论:你不能将swt工具提示子类化,使其可编辑。您无法使JFace工具提示看起来像您希望的样子。剩下的唯一解决方案是根据Widget
或Composite
创建自己的Canvas
,以满足您的需求。