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 Zitieren
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 Zitieren
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. Zitieren
Empfohlene Beiträge
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.