フレームに現在表示されているツールチップがあるかどうかを確認するエレガントな方法はありますか?
カスタム ツールチップを使用しているため、メソッドにフラグを設定するのは非常に簡単createToolTip()
ですが、ツールチップがいつなくなったかを確認する方法がわかりません。
ToolTipManager
これにはtipShowingという素晴らしいフラグがありますが、もちろんそれはprivate
あり、それに到達する方法を提供していないようです。 hideWindow()
ツールチップコンポーネントを呼び出さないため(私にはわかります)、そこに方法がありません。
誰にも良いアイデアはありますか?
更新:私は反射に行きました。ここでコードを見ることができます:
private boolean isToolTipVisible() {
// Going to do some nasty reflection to get at this private field. Don't try this at home!
ToolTipManager ttManager = ToolTipManager.sharedInstance();
try {
Field f = ttManager.getClass().getDeclaredField("tipShowing");
f.setAccessible(true);
boolean tipShowing = f.getBoolean(ttManager);
return tipShowing;
} catch (Exception e) {
// We'll keep silent about this for now, but obviously we don't want to hit this
// e.printStackTrace();
return false;
}
}