Zum Inhalt springen

ToolTip in einem Applet


Empfohlene Beiträge

Geschrieben

Hallo zusammen,

ich habbe ein Applet, und ich bräuchte für die die Components einen ToolTip. Problem ist, das Applet ist an AWT. Bei bisherigen Quellen aus dem INET wird immer die Statuszeile mit eingeblendet, kennt ihr vielleicht eine Lösung???

Danke David

Geschrieben

Gut, dass nicht nur ich das Problem hatte. Ich musste mir eine eigene Klasse dafür schreiben, mit der Einschränkung, dass es keinen Timer in Java 1.2 gibt, den ich für Ein- oder Ausblenden-Verzögerung verwenden konnte, aber du kannst gern weiter darn basteln (open-source Projekt, was? *g*)

Hier mal eben die Sources, macht 2,50:


public class ToolTip extends Canvas {

private static final Color standardBackground = SystemColor.info;

private MediaTracker tracker;
private String text; // the text to display
private Color background;

public ToolTip() {
tracker = new MediaTracker( this );
background = standardBackground;
}

public ToolTip(String text) {
this();
setText(text);
}

public void setText(String text) {
this.text = text;
}

public String getText() {
return this.text;
}

public void paint(Graphics g) {
Dimension size = size();
g.drawRect(0,0,size.width-1,size.height-1);
g.drawString(getText(),3,size.height-4);
}

public Dimension preferredSize() {
Dimension pref = new Dimension();
if (getText().length() > 0) {
FontMetrics ttfm = getFontMetrics(getFont());
pref.width = ttfm.stringWidth(getText())+7;
pref.height = ttfm.getHeight()+4;
}
return pref;
}
}
[/PHP]

Und wie dur's aus dem Applet (oder Application, what ever) ansprichst, erzähl ich dir in der nächsten Folge! ;)

Erstmal musst du den Tooltip initialisieren:

[PHP]
ToolTip mytoolTip = new ToolTip();

Dann am besten noch ein wenig manipulieren:


toolTip.setBackground(SystemColor.info);
toolTip.setForeground(SystemColor.infoText);
toolTip.addMouseListener(this);
this.add(toolTip, 0);
toolTip.hide();
[/PHP]

Dann kommen wir zur Action. In der Button-Abfrage müssen wir jetzt noch für jeden Button einen Tooltip-Text einfügen:

[PHP]
public void mouseEntered(MouseEvent me) {
setCursor(new Cursor(Cursor.HAND_CURSOR));
tooTip.setVisible(true);
if (me.getSource() == testButton) { toolTip.setText("Das ist ein Test!"); }
}

public void mouseExited(MouseEvent me) {
setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
toolTip.setVisible(false);
}

Das ist so ziemlich das Grundgerüst. Musst du vielleicht noch ein wenig anpassen, weiß jetzt nicht mehr, ob ich die Größe dynamisch an den Text anpasse. :)

Have fun,

Florian

Geschrieben

Besten Dank,

sowas habe ich gebraucht, und alles sehr sauber programmiert. Aber mit den 2,50 , bin doch ein armer Azubi :rolleyes: , habe Auto und Freundin, da ist nichts für Source-Code vorgesehen. :)

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...