Ich habe eine Seite mit Objekten darauf. Die Objektpositionen sind definiert durch Rectangle2D.Double
. Wenn ich die Maus bewege, überprüfe ich, ob ein Rechteck den Mauszeiger enthält oder nicht. Wenn ja, möchte ich ein Hover-Over-Menü des Objekts anzeigen (bisher nur Text).Verwenden von JPopupMenu als Hover-Over-Anzeige immer noch sichtbar nach Alt-Tabbing
Was ich im Konstruktor haben, ist diese
annnotationPopupMenu = new JPopupMenu();
annotationTextArea = new JTextArea(5,20);
annotationTextArea.setLineWrap(true);
annnotationPopupMenu.add(annotationTextArea);
und wenn ich über ein Objekt bin betreibe ich dieses
annotationTextArea.setText(annotation.getContent());
annnotationPopupMenu.setLocation(MouseInfo.getPointerInfo().getLocation().x+30, MouseInfo.getPointerInfo().getLocation().y);
annnotationPopupMenu.setVisible(true);
Wenn ich das Objekt
annnotationPopupMenu.setVisible(false);
verlassen ist Lauf. Das Problem, das ich jetzt habe, ist, dass, wenn ich aus der Anwendung Tab und die Maus über ein Objekt war das JPopupMenu immer noch sichtbar ist, obwohl der Rest der Anwendung jetzt hinter dem Fenster ist, das ich übergebe.
Was muss ich tun, dass das JPopup-Menü entweder unsichtbar wird oder zumindest keine Priorität gegenüber dem Fenster hat, in das ich getippt habe.
Unterhalb eines MWE, die nur eine PopupMenu öffnet die auf der Oberseite bleibt auch Alt-Tab:
package popupmenutest;
import javax.swing.JPopupMenu;
import javax.swing.JTextArea;
public class PopupMenuTest
{
public static void main(String[] args)
{
JPopupMenu annotationPopupMenu = new JPopupMenu();
JTextArea annotationTextArea = new JTextArea(5,20);
annotationTextArea.setLineWrap(true);
annotationPopupMenu.setLocation(500, 400);
annotationPopupMenu.add(annotationTextArea);
annotationPopupMenu.setVisible(true);
}
}
Bearbeiten Sie Ihre Frage gehören ein [MCVE] das ist das Problem zeigt Sie beschreiben, und identifiziert die Plattform betroffen. – trashgod
Verwenden Sie 'setComponentPopupMenu()', für [Beispiel] (http://stackoverflow.com/a/5129757/230513). – trashgod
Haben Sie erwogen, die bereits vorhandene Tooltip-Funktionalität zu nutzen? – MadProgrammer