Есть ли в Swing элегантный способ узнать, отображаются ли в данный момент в моем фрейме какие-либо всплывающие подсказки?
Я использую настраиваемые всплывающие подсказки, поэтому было бы очень легко установить флаг в моем 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;
}
}