# Tooltips in Eclipse



## darksmilie (24. Jan 2008)

Hi,

Ich würde gerne ein Tooltip wie in Eclipse erstellen. Weiß jemand von euch wonach ich im Eclipse-code suchen müsste um die codestellen zu finden oder kennt vielleicht jemand die genaue Klasse?


----------



## Verjigorm (24. Jan 2008)

Also JComponents haben die Methode
setToolTipText(string)

da is auchn weiterführender Link zur sun-site


----------



## darksmilie (24. Jan 2008)

Nein ich suche die erweiterten Tooltips, wo mehr Informationen angezeigt werden, wenn man "F2" gedrückt hat.


----------



## Wildcard (24. Jan 2008)

Für ein Swing Projekt würde dir der Code wenig nutzen, da Eclipse auf SWT und JFace aufbaut.
Aber wo ist jetzt das große Problem auf F2 zu reagieren?  ???:L 
Der Swing Tooltip ist aber vermutlich nicht ganz das richtige. Du solltest eventuell eher auf ein Popup zurückgreifen, da du darüber mehr Kontrolle hast.


----------



## darksmilie (24. Jan 2008)

Ich glaube ich habe die richtige Klasse im Eclipse source  gefunden. Bin mir zwar noch nicht 100%ig sicher aber ich glaube das ist die richtige. 

JavaEditorTextHoverProxy.java

@wildcard richtig mit swing mache ich nix. Das tooltip soll halt so aussehen wie das von Eclipse und sich auch so verhalten.


----------



## Verjigorm (24. Jan 2008)

darksmilie hat gesagt.:
			
		

> Nein ich suche die erweiterten Tooltips, wo mehr Informationen angezeigt werden, wenn man "F2" gedrückt hat.



also auf der Sun-Site hatte ich damals gefunden, wie man die Tooltip-Klasse überschreibt, wenn das natürlich zuviel arbeit ist, zu suchen ....

Naja ich hab damals nur den Text und die Farbe der Tooltips verändert, das hier habe ich jetzt mal versucht nachzubauen. Einige werden das sicher sehr unschön finden 
Naja muss sich ja keiner anschauen 

Das ganze ist nicht ganz fertig, mit nem MouseMotionlistener kann man das ganze wieder zurücksetzen bzw. das "vergrössern" schöner machen...
Naja warn Versuch 


```
import java.awt.AWTException;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Robot;
import java.awt.event.*;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JToolTip;
import javax.swing.ToolTipManager;

public class OwnToolTip 
{

	public static void main(String[] args)
	{
		
		final JFrame frame = new JFrame("MyOwnToolTip");
		frame.setLocation(200, 200);
		//frame.setSize(250, 100);
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.setResizable(false);
		
		final JLabel lab = new JLabel("Label mit Tooltip, drück F2 bei geöffnetem Tooltip", JLabel.CENTER)
		{

			private static final long serialVersionUID = 1L;
			JToolTip tip = new JToolTip();

		      public JToolTip createToolTip()
		      {
		         tip.setComponent(this);
		         return tip;
		      }
		};
		   
		final ToolTipManager m = ToolTipManager.sharedInstance();
		m.registerComponent(lab);
		m.setReshowDelay(0);
		   
		final JToolTip tt = lab.createToolTip();
		tt.setBackground(Color.yellow);
		tt.setForeground(Color.black);
	   
		lab.setToolTipText("Standard-Tooltip");
	   
		frame.addKeyListener(new KeyListener(){

		@Override
		public void keyPressed(KeyEvent e) 
		{
			if(e.getKeyCode() == KeyEvent.VK_F2)
			{
				tt.setPreferredSize(new Dimension(500,200));
				Robot rob;
				try {
					
					rob = new Robot();
					rob.mouseMove(lab.getLocationOnScreen().x-1,lab.getLocationOnScreen().y-1);
					rob.mouseMove(lab.getLocationOnScreen().x+lab.getWidth()/2,
							lab.getLocationOnScreen().y+lab.getHeight()/2);
					lab.setToolTipText("Tooltip nach F2");
					
				} catch (AWTException e1) {
					e1.printStackTrace();
				}
			}
		}

		@Override
		public void keyReleased(KeyEvent e) {
			// TODO Auto-generated method stub
			
		}

		@Override
		public void keyTyped(KeyEvent e) {
			// TODO Auto-generated method stub
			
		}
		   
	   });
   
	   frame.add(lab);
	   frame.pack();
	   frame.setVisible(true);
	}
}
```


----------



## darksmilie (24. Jan 2008)

abgesehen davon, das dein Vorschlag Swing ist wäre es ja ok, aber ich habe eine SWT Anwendung und möchte kein SWT mit Swing mixen. Das Thema hatte ich früher einmal und hat nur Probleme gemacht. Aber danke für dein Vorschlag.


----------

