Hi zusammen. Vielleicht kann mir ja ein Javarianer bei meinem Prob weiterhelfen.
Ich hab in einem JPanel einen Canvas hinzugefuegt, welcher eine Graphics anzeigt. Angezeigt wird eine Punktemenge. jetzt will ich, wenn ich [mouseOver()] über einem Punkt stehe einen ToolTip mit den Koordinaten oder Wert (egal) des Punktes anzeigen. ich schaffs aber nicht, dass der Tooltip über dem Canvas angezeigt wird...
Vielleicht hat ja jemand ne Idee.
JToolTip() an XY Koordinaten
-
-
Poste mal Teile des Codes, dann wird vielleicht klarer, wo das Problem liegt.
-
tja Teile des codes bringen nichts, da ich den ToolTip wieder herausgenommen hab. mein Problem ist, dass ich einem Canvas keinen ToolTip hinzufügen kann und wenn ich es dem JPanel, in dem der Canvas liegt hinzufüge dann seh ich den ToolTip nur an Stellen, an denen der Canvas nicht liegt.
Daher müßte ich einen ToolTip ohne JComponent erzeugen, der sozusagen erscheint, wenn ich mich mit der Maus an einer bestimmten xy Position befinde. Aber naja ka... :confused: -
Brauchst du das Canvas überhaupt? Du könntest doch einfach auf das JPanel zeichnen, bzw. könntest du dem (Haupt-)JPanel ein weiters JPanel einfügen, auf das du dann zeichnest.
-
Zitat von Ubik
Brauchst du das Canvas überhaupt? Du könntest doch einfach auf das JPanel zeichnen, bzw. könntest du dem (Haupt-)JPanel ein weiters JPanel einfügen, auf das du dann zeichnest.
deSertXtall: Du solltest Ubik's rat folgen und statt eines Canvas einen weiteren JPanel verwenden. Canvas ist ein sehr alte Klasse aus dem AWT, die nicht sehr gut mit Swing-Komponenten (wie JPanel) zusammenspielt.
Noch ein Tip: Wenn du in einem JPanel die paint(Graphics g) methode überschreibst, solltest du dort als erstes die paint-methode des parents aufrufen, also
Ich weiss jetzt nicht mehr so genau, welche probleme auftauchen können, wenn du das nicht tust. Ich weiss aber das es solche Probleme gibt
-
thx für eure tips. dann werd ichs mal mit nem JPanel versuchen. mal sehen obs funktioniert.
lg desert
-
Du musst beim JPanel allerdings paintComponent() überschreiben, nicht paint().
Und den Tip mit dem super.paintComponent() nicht vergessen, sonst wirst nicht viel sehen
Jetzt mitmachen!
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!