Java 标准小部件工具包-工具提示

Java 标准小部件工具包-工具提示,java,swt,Java,Swt,我在想这个, 我在标签上设置了swt工具提示。tooltip方法将被称为setTooltipmessage,而setMessagemessage将在创建tooltip对象的类中设置。现在,在设置工具提示消息之前,我正在检查null或empty条件,否则它将抛出IllegalArgumentException。所以我的代码就是这样 public void setTooltip(String message) { if (message != null && !message.isE

我在想这个,

我在标签上设置了swt工具提示。tooltip方法将被称为setTooltipmessage,而setMessagemessage将在创建tooltip对象的类中设置。现在,在设置工具提示消息之前,我正在检查null或empty条件,否则它将抛出IllegalArgumentException。所以我的代码就是这样

public void setTooltip(String message) {
if (message != null && !message.isEmpty()) {
tooltip.setMessage(message);
label.addMouseTrackListener(mouseTrackListener);
iconLabel.addMouseTrackListener(mouseTrackListener);
} else {
label.removeMouseTrackListener(mouseTrackListener);
iconLabel.removeMouseTrackListener(mouseTrackListener);
}
}
我需要else条件中的一个选项,因为如果传递null且工具提示未与侦听器关联,则控件将转到RemovelListener行eben

我不知道这里的控制流是如何发生的。有人能详细说明一下吗。 我会在else条件中将工具提示显式设置为空字符串,这样就不可能在工具提示上设置以前的值,例如

else {
tooltip.setMessage("");
label.removeMouseTrackListener(mouseTrackListener);
iconLabel.removeMouseTrackListener(mouseTrackListener);
}

如果需要,调用方可以通过这种方式将null/empty传递到此方法以删除工具提示。这可能吗?如果是这样,上述else条件如何工作以及控制如何流动?我应该有一个我不想删除的else条件,但我需要知道如何实现这一点。

什么是工具提示?您是否知道控件上的setToolTipText方法,该方法不需要鼠标跟踪即可进行工具提示?是的,我知道setToolTipText,但不是为了使其难以编码,我在setTooltipstring中从另一个类传递一个字符串,并在类I create tooltip对象中使用tooltip.setMessage设置工具提示。如果我使用setTooltipText,那么它将特定于一个类,但我正在使用多个包和多个JAVA文件处理eclipse。所以我想这样。你能给点建议吗?tooltip是tooltip类的对象->tooltip tooltip=new ToolTipparent.getShell,SWT.NONE;