ExAzubi Geschrieben 14. August 2002 Geschrieben 14. August 2002 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
Florian_K Geschrieben 15. August 2002 Geschrieben 15. August 2002 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
ExAzubi Geschrieben 15. August 2002 Autor Geschrieben 15. August 2002 Besten Dank, sowas habe ich gebraucht, und alles sehr sauber programmiert. Aber mit den 2,50 , bin doch ein armer Azubi , habe Auto und Freundin, da ist nichts für Source-Code vorgesehen.
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden