我有一个显示标签的类。当我将鼠标悬停在该标签上时,会显示一个空的工具提示。我想删除该工具提示(我的意思是我不希望它显示)。我可以轻松地说tooltip.setVisibility(false)但我不应该更改MouseTrackListener Anonymous类中的代码。我需要在其他地方使用toltip属性pr,这样当我扩展这个类时,我需要有一个选项,可以在需要时轻松设置此工具提示的可见性,或者在不需要时禁用它。
这是我的代码段(JAVA SWT)
tooltip = new ToolTip(parent.getShell(), SWT.NONE);
MouseTrackListener mouseTrackListener = new MouseTrackListener() {
@Override
public void mouseEnter(MouseEvent e) {
if (text != null && !text.isEmpty()) {
tooltip.setLocation(Display.getCurrent().getCursorLocation().x,
Display.getCurrent().getCursorLocation().y + TOOLTIP_OFFSET_Y);
tooltip.setVisible(true);
}
}
@Override
public void mouseExit(MouseEvent e) {
if (text != null && !text.isEmpty()) {
tooltip.setVisible(false);
}
}
@Override
public void mouseHover(MouseEvent e) {
}};
label.addMouseTrackListener(mouseTrackListener);
iconLabel.addMouseTrackListener(mouseTrackListener);
答案 0 :(得分:0)
不太确定你想做什么。只需隐藏空工具提示或在显示提示时控制? 也许这符合您的需求:
private boolean showToolTip = true;
tooltip = new ToolTip(parent.getShell(), SWT.NONE);
public void setShowToolTip (boolean show){
showToolTip = show;
}
MouseTrackListener mouseTrackListener = new MouseTrackListener() {
@Override
public void mouseEnter(MouseEvent e) {
if (text != null && !text.isEmpty()) {
tooltip.setLocation(Display.getCurrent().getCursorLocation().x,
Display.getCurrent().getCursorLocation().y + TOOLTIP_OFFSET_Y);
if (showToolTip){
tooltip.setVisible(true);
} else {
tooltip.setVisible(false);
}
}
或者您是否想要一个解决方案,其中您的MouseTrackListerner实例中的代码不会更改?
答案 1 :(得分:0)
您可以尝试 ToolTip的 setAutoHide(boolean autoHide)
属性。 (没用过,所以不确定)
if(text == null || text.isEmpty()) {
tooltip.setAutoHide(true);
}
这有帮助吗?