Tooltip sperrt MouseListener?

Status
Nicht offen für weitere Antworten.
G

grayson

Gast
Hi!

Ich hab mal wieder ein kleines Problemchen.....

Ich zeichne in einem Scrollpane eine Sternenkarte, und wenn man mit der Maus auf einen dieser Planetn (kleine JPanels) klickt, bekommt man einen Dialog mit Infos etc. angezeigt.

Nun Hatte ich die goldige Idee, die Namen der Planeten per Tooltip anzuzeigen --> das funktioniert auch, leider überlagert der Tooltip irgendwie meinen MouseListener, der für das Klicken zuständig ist ?!?

Kann mir da jemand auf die Sprünge helfen, wie ich das umgehen kann?

Danke

Gray
 

Mag1c

Top Contributor
Moin,

liegen die Tooltips direkt unter dem Mauszeiger ? Zeige die Tooltips etwas versetzt an (unter, über oder neben dem JPanel). Poste mal etwas Code zum nachvollziehen.

Gruß
Mag1c
 
G

grayson

Gast
also ich hab ne klasse Planet, die von JPanel erbt.

Die planeten werden auf einem JPanel (InnerSphereMap) gezeichnet

die InnerSphereMap liegt auf einem jScrollPane und nutzt diese Methode zum Zeichnen der Planeten:

Code:
public void paintPlanetsFromList() {



    this.setSize(1000, 1000);

    this.removeAll();

    setMiddle();

    middle = getMiddle();

    for (int i = 0; i < planets.size(); i++) {

      Planet p = new Planet((PlanetContainer) planets.get(i));



      double pX = p.getXCoord();

      double pY = p.getYCoord();



      if (pX < 0) {

        pX = (middle.getX() + pX);

      } else {

        pX = (middle.getX() + pX);

      }

      if (pY < 0) {

        pY = (middle.getY() - pY);

      } else {

        pY = (middle.getY() - pY);

      }

      p.setOwnercolor();   

      p.setToolTipText(p.getName());

      this.add(p, new XYConstraints((int) pX, (int) pY, 10, 10));

    }

  }

Und in der Init Methode des LobbyClient ( also da wo die karte dargestellt wird, registriere ich meinen mouselistener:



Code:
  mIsMap.addMouseListener(new MouseAdapter() {

            public void mouseClicked(MouseEvent e) {

                Planet x = null;

                try {



                    x = (Planet) mIsMap.getComponentAt(e.getPoint());



                } catch (Exception ex) {

                    log.error("no planet here");

                    return;

                }

                boolean inRange = false;

                Point p = e.getPoint();

                int xCoord = (int) p.getX();

                int yCoord = (int) p.getY();

                paintRange(xCoord, yCoord, 46 + mZoomLevel * 12, 46 + mZoomLevel * 12);



                inRange = mIsMap.checkRange(x, mUser);

                if (inRange == true) {

                    showPlanet(x);



                } else {

                    JOptionPane.showMessageDialog(null, "Planet more than 30 Light Years away! \n No Info available.", "Out of Range", JOptionPane.INFORMATION_MESSAGE, new ImageIcon(ImageLoader.loadGuiImage("outofrange")));

                }

                mIsMap.repaint();

            }

      

        });


Dummer weise, wenn ich in der paintPlanetsFromList methode die zeile
Code:
p.setToolTipText(p.getName());
drin hab, funktioniert der mouselistener nicht mehr d.h. die tooltips werden angezeigt, aber das mouseClicked event bleibt stecken.

Hab ich die zeile nicht drin, funktioniert es --> nur eben ohne tooltips was nicht so informativ ist...
 

Mag1c

Top Contributor
Hi,

hmm, das scheint mir eine knifflige Geschichte zu sein. Hab gerade mal in den Sun-Klassen gestöbert. Wenn ich das richtig verstanden habe, werden MOUSE_CLICKED-Events nur an die Komponente geschickt, die auch das MOUSE_PRESSED erhalten hat. Wenn du nun bei den JPanels einen Tooltip setzt, registriert sich dort der ToolTipManager als MouseListener und wertet das MOUSE_PRESSED aus. Damit bekommt der natürlich auch das MOUSE_CLICKED. Mir fallen jetzt erstmal zwei Möglichkeiten dazu ein:

1. mach das ganze über einen MouseMotionListener an der InnerSphereMap. Sollte nicht all zu schwierig sein, die Tooltips selbst anzuzeigen (PopupFactory).

2. registriere an den ganzen Planeten-JPanels MouseListener (klingt ziemlich blöd :( würd ich nicht machen)

Gruß
Mag1c
 
G

grayson

Gast
jap, das hab ich in der zwischenzeit auch rausgefunden und das problem auch gelöst ;)

aber der junge in dem artikel hat recht.... das sollte besser dokumentiert sein.... aber jetzt weis ich's ja,

danke leute, habt mir sehr geholfen !


Gray
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
T Swing Tooltip-Delay funktioniert nicht immer. AWT, Swing, JavaFX & SWT 1
M JavaFX JAVAFX TreeItem mit Tooltip versehen AWT, Swing, JavaFX & SWT 4
M JavaFX Tooltip bei setOnMouseMoved Verständnisproblem AWT, Swing, JavaFX & SWT 6
V JFreeChart: Tooltip auf Knopfdruck anzeigen AWT, Swing, JavaFX & SWT 2
J JavaFX Tooltip Verzögerung beim ersten Anzeigen AWT, Swing, JavaFX & SWT 4
M Datenbanksätze in ToolTip laden AWT, Swing, JavaFX & SWT 4
Tom299 JavaFX Tooltip verbuggt? AWT, Swing, JavaFX & SWT 1
J JTabbedPane: table in new tab: tooltip benutzt die column-widths von table in erstem geöffneten tab AWT, Swing, JavaFX & SWT 17
P Image oder Icon auf Tooltip zeichnen AWT, Swing, JavaFX & SWT 4
P Vorteile von Tooltip nutzen (wird über allen anderen Objekten angezeigt) AWT, Swing, JavaFX & SWT 3
U drawLine mit Tooltip AWT, Swing, JavaFX & SWT 1
D Swing JCombobox - Tooltip Location ändern AWT, Swing, JavaFX & SWT 4
B JavaFX Tooltip auf ImageView AWT, Swing, JavaFX & SWT 6
U Tooltip Dauer setzen AWT, Swing, JavaFX & SWT 0
U ToolTip Größenänderung, passt sich erst beim zweiten Mal an AWT, Swing, JavaFX & SWT 6
F ToolTip mit Link zum anklicken AWT, Swing, JavaFX & SWT 2
S SWT: Drop-Down Menü-Einträge mit Tooltip hervorheben AWT, Swing, JavaFX & SWT 3
C ToolTip aktualisieren AWT, Swing, JavaFX & SWT 2
A SWT Tooltip soll nicht verschwinden, solange User mit Maus auf Control ist AWT, Swing, JavaFX & SWT 5
C Tooltip dynamisch setzen AWT, Swing, JavaFX & SWT 7
GianaSisters Swing jComboBox Tooltip funktioniert nicht AWT, Swing, JavaFX & SWT 17
6 ToolTip erzwingen AWT, Swing, JavaFX & SWT 6
R SWT Tooltip AWT, Swing, JavaFX & SWT 5
J jList, recht Maustast => Tooltip zu Element AWT, Swing, JavaFX & SWT 8
T Tooltip bei falscher Eingabe anzeigen AWT, Swing, JavaFX & SWT 2
hdi Problem mit ToolTip: Aussehen/Verzögerung AWT, Swing, JavaFX & SWT 7
P Tooltip "erzwingen" ? AWT, Swing, JavaFX & SWT 7
S Swing JTree in ScrollPane einen ToolTip geben AWT, Swing, JavaFX & SWT 2
Antoras Swing Tooltip permanet anzeigen AWT, Swing, JavaFX & SWT 5
W Verzögerung à la Tooltip bei mouseEntered AWT, Swing, JavaFX & SWT 19
G Tooltip anzeigen AWT, Swing, JavaFX & SWT 4
GilbertGrape scrollable Tooltip AWT, Swing, JavaFX & SWT 9
G Tooltip Text für ein Shape Objekt AWT, Swing, JavaFX & SWT 2
GilbertGrape JTable+Tooltip+Zeilenumbrüche AWT, Swing, JavaFX & SWT 7
M Tooltip anzeigen? AWT, Swing, JavaFX & SWT 3
J Anzeigedauer eines Tooltip? AWT, Swing, JavaFX & SWT 5
S Tooltip Frage AWT, Swing, JavaFX & SWT 3
G 'Spezieller' Tooltip, wenn JTable-Column zu schmal AWT, Swing, JavaFX & SWT 6
P JRE 6 -> ToolTip & mnemonic Anzeige AWT, Swing, JavaFX & SWT 4
G Tooltip Zeilenumbruch AWT, Swing, JavaFX & SWT 13
B ToolTip verändern / selbst gestalten AWT, Swing, JavaFX & SWT 3
F ToolTip auf Canvas AWT, Swing, JavaFX & SWT 2
S Tooltip auf Toolbar-Icon AWT, Swing, JavaFX & SWT 6
C Tooltip nur anzeigen, wenn JInternalFrame minimiert AWT, Swing, JavaFX & SWT 3
D Eigenes Tooltip AWT, Swing, JavaFX & SWT 5
M JTree: Tooltip wenn Text nicht vollständig angezeigt wird AWT, Swing, JavaFX & SWT 3
M Seltsames Verhalten Tooltip und JDialog AWT, Swing, JavaFX & SWT 8
I JTable, Tooltip, HTML AWT, Swing, JavaFX & SWT 2
S ToolTip an Mausposition anzeigen AWT, Swing, JavaFX & SWT 5
O Hintergrundfarbe beim ToolTip AWT, Swing, JavaFX & SWT 5
L JLabel als Tooltip AWT, Swing, JavaFX & SWT 3
G Tooltip aufpoppen lassen AWT, Swing, JavaFX & SWT 3
M Border in ToolTip AWT, Swing, JavaFX & SWT 5
F ToolTip über Line2D bzw. Rectangle2D AWT, Swing, JavaFX & SWT 5
R JTable: Jede Zelle mit eigenem ToolTip belegen AWT, Swing, JavaFX & SWT 5
V Tooltip Text auf Spaltenkopf (JTable) AWT, Swing, JavaFX & SWT 4
S Tooltip auf Kopf eine JTable? AWT, Swing, JavaFX & SWT 2
G ToolTip AWT, Swing, JavaFX & SWT 4
W Bei hinzufügen der Action verliert Button Text,Tooltip, etc AWT, Swing, JavaFX & SWT 5
S Tooltip mit Grafik AWT, Swing, JavaFX & SWT 2
N lightweight bei ToolTip AWT, Swing, JavaFX & SWT 2
kaory Variabler ToolTip-Text in JTable AWT, Swing, JavaFX & SWT 5
T ToolTip AWT, Swing, JavaFX & SWT 3
R ToolTip länger aufrecht erhalten AWT, Swing, JavaFX & SWT 3
S ToolTip erweitern bei Swing (Mehrzeilig) AWT, Swing, JavaFX & SWT 2
M Tooltip / neues Fenster AWT, Swing, JavaFX & SWT 6
H MouseListener Schach AWT, Swing, JavaFX & SWT 6
H Viele ActionListener (MouseListener) - Performance AWT, Swing, JavaFX & SWT 24
ExceptionOfExpectation MouseListener-Objekte zu den Graphics-Objekten einfügen AWT, Swing, JavaFX & SWT 3
R Punkt von MouseListener hat falsche Koordinate AWT, Swing, JavaFX & SWT 2
J MouseListener wird nicht ausgeführt. AWT, Swing, JavaFX & SWT 4
S Swing Rechteck über JTable zeichnen (per MouseListener) AWT, Swing, JavaFX & SWT 1
G vorgefertigte Buttons oder neue Komponente mit MouseListener? AWT, Swing, JavaFX & SWT 0
F ListCellRenderer mit JLabel und MouseListener AWT, Swing, JavaFX & SWT 4
D Event Handling MouseListener funktioniert seit Java 8 nicht mehr AWT, Swing, JavaFX & SWT 13
M MouseListener auf table oder scrollPane AWT, Swing, JavaFX & SWT 11
B Event Handling MouseListener Behält seine Variablen, auch wenn ich ein neus Objekt erstelle AWT, Swing, JavaFX & SWT 2
D Swing &MouseListener in einem JFrame, sinnig? AWT, Swing, JavaFX & SWT 11
U MouselIstener zu JFrame AWT, Swing, JavaFX & SWT 6
F Swing MouseListener im JPanel AWT, Swing, JavaFX & SWT 3
J Swing Button mit JTable und MouseListener AWT, Swing, JavaFX & SWT 8
F JPanel + MouseListener AWT, Swing, JavaFX & SWT 5
JavaInBrain Swing Rückgabe aus MouseListener-Klasse AWT, Swing, JavaFX & SWT 3
A SWT SWT Scale und MouseListener AWT, Swing, JavaFX & SWT 7
J MouseListener und rechte Maustaste AWT, Swing, JavaFX & SWT 3
R MouseListener auf JPanel AWT, Swing, JavaFX & SWT 3
Q Swing MouseListener auf JTable geht nicht AWT, Swing, JavaFX & SWT 2
J Swing Einbau MouseListener in JPanel AWT, Swing, JavaFX & SWT 3
N Mit MouseListener X-Y Angaben vom Bild erfahren AWT, Swing, JavaFX & SWT 3
T MouseListener an Ecken von Polygonen hinzufügen AWT, Swing, JavaFX & SWT 5
H Swing JPanel in JTable mit MouseListener AWT, Swing, JavaFX & SWT 3
A Individueller MouseListener ? AWT, Swing, JavaFX & SWT 7
B MouseListener im Renderer einer JComboBox AWT, Swing, JavaFX & SWT 3
P AWT MouseListener unklare abhandlung von Events AWT, Swing, JavaFX & SWT 3
M MouseListener/MouseMotionListener AWT, Swing, JavaFX & SWT 2
njans SWT MouseListener exited AWT, Swing, JavaFX & SWT 4
danx066 MouseListener macht was er will AWT, Swing, JavaFX & SWT 14
K MouseListener für Objekte auf einem Frame AWT, Swing, JavaFX & SWT 4
P JLabel Farbe/Bild ändern aus MouseListener heraus AWT, Swing, JavaFX & SWT 3
U Swing Generierung mehrerer Kreise per MouseListener AWT, Swing, JavaFX & SWT 16

Ähnliche Java Themen

Neue Themen


Oben