1
我有一個swing組件,爲此我重寫了getToolTipText(MouseEvent)以獲取組件內不同鼠標位置的自定義工具提示。我想實現的是,某些鼠標位置不能顯示工具提示。切換動態工具提示 - java swing
當鼠標位於這些無效位置時,我嘗試在getToolTipText(MouseEvent)中返回null,但這會導致出現空指針異常。如果我返回一個空字符串,我會在OS X上得到預期的行爲(不顯示任何工具提示)。但是一個空的工具提示會顯示在Linux上。
public String getToolTipText(MouseEvent evt) {
if(mouseInCorrectRegion(evt)) {
return "A tooltip!";
}
else {
//No tooltip displayed on OS X, but
//empty tooltip displayed on Linux
return "";
// return null; //Causes NPE randomly
}
}
那麼,如何動態地啓用/禁用基於組件內鼠標位置的工具提示?我應該嘗試在組件的mouseMoved()中使用ToolTipManager.sharedInstance()。registerComponent()和unregisterComponent()嗎?
謝謝!我曾想過嘗試setToolTipText(null),但不確定要返回的內容。這完美的作品! – 2014-11-14 21:45:32