Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

ToolTip in einem Applet

Empfohlene Antworten

Veröffentlicht

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

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

  • Autor

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. :)

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.