ToolTip Location Example : Tooltip « Swing JFC « Java

ToolTip Location Example

ToolTip Location Example
// Example from

/* (swing1.1.1) */

import java.awt.Container;
import java.awt.Point;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.Box;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.UIManager;

 * @version 1.0 08/27/98
public class ToolTipLocationExample extends JFrame {
  public ToolTipLocationExample() {
    super("ToolTip Location Example");

    // above position
    JButton buttonAbove = new JButton("Above") {
      public Point getToolTipLocation(MouseEvent e) {
        return new Point(20, -30);
    buttonAbove.setToolTipText("Hello world");

    // blow (default) position
    JButton buttonBelow = new JButton("Below");
    buttonBelow.setToolTipText("Hello world");

    // whatever
    final RelocatableToolTipButton buttonRelocate = new RelocatableToolTipButton(
    buttonRelocate.setToolTipText("Hello world");
    buttonRelocate.addActionListener(new ActionListener() {
      JPanel messagePanel = createPanel();

      JTextField locationX, locationY;

      public void actionPerformed(ActionEvent e) {
        Point p = buttonRelocate.getToolTipLocation(null);
        if (p == null) {
        } else {
        int result = JOptionPane.showOptionDialog(
            ToolTipLocationExample.this, messagePanel, "Location",
            JOptionPane.QUESTION_MESSAGE, null, null, null);
        if (result == JOptionPane.OK_OPTION) {
          try {
            int x = Integer.parseInt(locationX.getText());
            int y = Integer.parseInt(locationY.getText());
            buttonRelocate.setToolTipLocation(new Point(x, y));
          } catch (NumberFormatException ex) {

      private JPanel createPanel() {
        JPanel p = new JPanel();
        p.setLayout(new BoxLayout(p, BoxLayout.X_AXIS));
        p.add(new JLabel("  X: "));
        p.add(locationX = new JTextField());
        p.add(new JLabel("  Y: "));
        p.add(locationY = new JTextField());
        return p;

    JPanel panel = new JPanel();
    Container c = getContentPane();
    c.setLayout(new BoxLayout(c, BoxLayout.Y_AXIS));

  class RelocatableToolTipButton extends JButton {
    Point toolTipLocation;

    RelocatableToolTipButton(String label) {
      toolTipLocation = null;

    public Point getToolTipLocation(MouseEvent e) {
      return toolTipLocation;

    public void setToolTipLocation(Point location) {
      toolTipLocation = location;

  public static void main(String args[]) {
    try {
    } catch (Exception evt) {}
    ToolTipLocationExample frame = new ToolTipLocationExample();
    frame.addWindowListener(new WindowAdapter() {
      public void windowClosing(WindowEvent e) {
    frame.setSize(300, 130);


Related examples in the same category

1.Tooltip SampleTooltip Sample
2.Html tooltipsHtml tooltips
3.Working with Tooltip TextWorking with Tooltip Text
4.MultiLine ToolTip ExampleMultiLine ToolTip Example
5.Colored ToolTip ExampleColored ToolTip Example
6.Disable / enable application tool tips
7.Making Tool Tips Remain Visible
8.Enabling and Disabling Tool Tips
9.Making Tool Tips Appear Immediately
10.Use the default tool tip location
11.Make a tool tips appear immediately
12.Showing an Image in a Tool Tip with HTML
13.Setting a Tool Tip
14.Setting the Location of a Tool Tip
15.By default, the lines are left justified. Center the lines.
16.Set the location of the tool tip such that its nw corner coincides with the bottom center of the button
17.Showing an Image in a ToolTip
18.Modify the behaviour of the default JToolTip
19.Italicize the second line
20.Changing ToolTip background color for Swing Applications
21.Set a tool tip for swing component
22.JToolTip With Icon