Tooltip selbst gemacht

maTuchen

Grünschnabel
Hallo liebe Tutorials.de Com,

ich möchte gerne eine Tooltip Funktion für ein Programm selber schreiben. Jetzt fragt ihr euch sicher warum ... simpel, ich möchte nicht nur ein String da rein packen, sondern vielleicht auch ein JPanel.

Zum Problem, ich habe leider keine Ahnung wie ich das Problem angehen könnte, kennt jemand eventuell eine Funktion bei JAVA, die mir weiterhelfen könnte ?

Danköö :>
 
mhh, also so rein konzeptionell würde ich nun ein MouseOver-Event für das betreffende Event vorschlagen, zusammen mit dem Auslesen der Maus und erstellen einer Grafik welche im Z-Index über allem steht und hinter der Maus "hergeschoben" wird
 
Hallo,
das ist etwas komplizierter aber ich denke ich hab sowas schon mal in den Swing Hacks gesehen:
http://examples.oreilly.de/english_examples/swinghks/

Was willst du denn in den Tooltips anzeigen? Vielleicht kannst du das ja auch via HTML anzeigen:

Java:
/**
 * 
 */
package de.tutorials;

import javax.swing.JFrame;
import javax.swing.JLabel;

/**
 * @author Tom
 * 
 */
public class HtmlInToolTipExample extends JFrame {

    JLabel lblTest;

    public HtmlInToolTipExample() {
        super("HtmlInToolTipExample");
        setDefaultCloseOperation(EXIT_ON_CLOSE);

        lblTest = new JLabel("Test");
        add(lblTest);

        lblTest.setToolTipText("<html><h1>Hallo</h1><br/><b><font color=\"FF0000\">TEST</font></b>");

        pack();
        setVisible(true);
    }

    /**
     * @param args
     */
    public static void main(String[] args) {
        new HtmlInToolTipExample();
    }

}

Gruß Tom
 
Hallochen,

Was willst du denn in den Tooltips anzeigen?

Ich möchte zum Beispiele eine Liste mit Produkten ausgeben, da ich aber nicht jedes mal in die Details des Produktes gehen möchte, würde ich gerne die Details bei einem mouseOver anzeigen lassen.

HTML müsste ich mal probieren :)

---- Edit
Na ja mit HTML siehts auch nicht schön aus :(
 
Zuletzt bearbeitet:
Hallo,

na ja, bei diesen Hacks hab ich auch nicht wirklich was gefunden. Weiß denn niemand wie man ein Panel als mouseOver über ein anderes legen kann ?
 
eine Liste mit Produkten
Ähm.. ich hab diese Tooltipps selbst noch nie genutzt. Aber da es ja einfach ein String ist wie wäre es mit sowas:
String strTipp = "- Produkt 1\n\r- Produkt 2\n\r- Produkt 3\n\retc";
so bekommst du auch eine Liste, oder funktionieren Umbrüche nicht im Tooltipp?

gruss
jeipack
 
Zuletzt bearbeitet:
Hallo,

ich habe das Problem jetzt gelöst. Ich kann leider den Code hier nicht posten, da es in der Gesamtstruktur implementiert ist, aber ich sage euch einfach mal die vorgehensweise:

Ich habe beim Start des Frames einmal ein Panel erstellt. Dann habe ich 2 Methoden gebaut die das Panel erscheinen lassen (readOverlay() bsp) und das Panel wieder verschwinden lassen (killOverlay() bsp). Kurz dazu was in:
- readOverlay => JComponent.setVisible(true);
- killOverlay => JComponent.setVisible(false);​
steht. Nun habe ich ein MouseListener genommen, der auf die Aktionen der Maus auf dem Objekt reagiert. Ich habe jetzt "mouseEntered" & "mouseExited" benutzt. Je nachdem was geforder wird:

mouseEntered -> readOverlay
mouseExited -> killOverlay

Natürlich kann man den Inhalt über Erweiterungen auch dynamisch füllen. Nur wenn ihr diesen dynamisch füllen lasst, kann ich als Tip nur geben, dass ihr einfach das JComponent (Overlay) einmal alle Objekte löscht und neu schreibt.
 
Zurück