<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://www.jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java%2FSwing_JFC%2FTooltip</id>
		<title>Java/Swing JFC/Tooltip - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://www.jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java%2FSwing_JFC%2FTooltip"/>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java/Swing_JFC/Tooltip&amp;action=history"/>
		<updated>2026-04-21T15:08:17Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://www.jexp.ru/index.php?title=Java/Swing_JFC/Tooltip&amp;diff=7399&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java/Swing_JFC/Tooltip&amp;diff=7399&amp;oldid=prev"/>
				<updated>2010-06-01T06:42:20Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 06:42, 1 июня 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://www.jexp.ru/index.php?title=Java/Swing_JFC/Tooltip&amp;diff=7398&amp;oldid=prev</id>
		<title> в 18:01, 31 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java/Swing_JFC/Tooltip&amp;diff=7398&amp;oldid=prev"/>
				<updated>2010-05-31T18:01:44Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== By default, the lines are left justified. Center the lines. ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
import javax.swing.JButton;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    JButton component = new JButton();&lt;br /&gt;
    component.setToolTipText(&amp;quot;&amp;lt;html&amp;gt;&amp;lt;center&amp;gt;&amp;quot; + &amp;quot;This is a&amp;quot; + &amp;quot;&amp;lt;br&amp;gt;&amp;quot; + &amp;quot;tool tip&amp;quot;&lt;br /&gt;
        + &amp;quot;&amp;lt;/center&amp;gt;&amp;lt;/html&amp;gt;&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Changing ToolTip background color for Swing Applications ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
import java.awt.Dimension;&lt;br /&gt;
import java.awt.FlowLayout;&lt;br /&gt;
import javax.swing.JButton;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
import javax.swing.JLabel;&lt;br /&gt;
import javax.swing.UIDefaults;&lt;br /&gt;
import javax.swing.UIManager;&lt;br /&gt;
import javax.swing.plaf.ColorUIResource;&lt;br /&gt;
import javax.swing.plaf.metal.MetalLookAndFeel;&lt;br /&gt;
class MyLookAndFeel extends MetalLookAndFeel {&lt;br /&gt;
  protected void initSystemColorDefaults(UIDefaults table) {&lt;br /&gt;
    super.initSystemColorDefaults(table);&lt;br /&gt;
    table.put(&amp;quot;info&amp;quot;, new ColorUIResource(255, 255, 225));&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
class Main extends JFrame {&lt;br /&gt;
  public Main() throws Exception{&lt;br /&gt;
    UIManager.setLookAndFeel(&amp;quot;MyLookAndFeel&amp;quot;);&lt;br /&gt;
    setLayout(new FlowLayout());&lt;br /&gt;
    JButton b = new JButton();&lt;br /&gt;
    b.setText(&amp;quot;&amp;lt;html&amp;gt;A&amp;lt;br&amp;gt; B&amp;lt;/html&amp;gt;&amp;quot;);&lt;br /&gt;
    b.setToolTipText(&amp;quot;&amp;lt;html&amp;gt;C&amp;lt;br&amp;gt;D&amp;lt;br&amp;gt;E&amp;lt;/html&amp;gt;&amp;quot;);&lt;br /&gt;
    add(b);&lt;br /&gt;
    JLabel l = new JLabel(&amp;quot;Z&amp;quot;);&lt;br /&gt;
    l.setToolTipText(&amp;quot;zzzzz...&amp;quot;);&lt;br /&gt;
    add(l);&lt;br /&gt;
  }&lt;br /&gt;
  public static void main(String[] arg)throws Exception {&lt;br /&gt;
    Main m = new Main();&lt;br /&gt;
    m.setVisible(true);&lt;br /&gt;
    m.setSize(new Dimension(300, 150));&lt;br /&gt;
    m.validate();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Colored ToolTip Example ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
// Example from http://www.crionics.ru/products/opensource/faq/swing_ex/SwingExamples.html&lt;br /&gt;
/* (swing1.1) */&lt;br /&gt;
&lt;br /&gt;
import java.awt.Color;&lt;br /&gt;
import java.awt.event.WindowAdapter;&lt;br /&gt;
import java.awt.event.WindowEvent;&lt;br /&gt;
import javax.swing.JButton;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
import javax.swing.UIManager;&lt;br /&gt;
import javax.swing.plaf.ColorUIResource;&lt;br /&gt;
/**&lt;br /&gt;
 * @version 1.0 12/10/98&lt;br /&gt;
 */&lt;br /&gt;
public class ColoredToolTipExample extends JFrame {&lt;br /&gt;
  public ColoredToolTipExample() {&lt;br /&gt;
    super(&amp;quot;Colored ToolTip Example&amp;quot;);&lt;br /&gt;
    UIManager.put(&amp;quot;ToolTip.foreground&amp;quot;, new ColorUIResource(Color.red));&lt;br /&gt;
    UIManager.put(&amp;quot;ToolTip.background&amp;quot;, new ColorUIResource(Color.yellow));&lt;br /&gt;
    JButton button = new JButton(&amp;quot;Hello, world&amp;quot;);&lt;br /&gt;
    button.setToolTipText(&amp;quot;Red / Yellow&amp;quot;);&lt;br /&gt;
    getContentPane().add(button);&lt;br /&gt;
  }&lt;br /&gt;
  public static void main(String args[]) {&lt;br /&gt;
    try {&lt;br /&gt;
        UIManager.setLookAndFeel(&amp;quot;com.sun.java.swing.plaf.windows.WindowsLookAndFeel&amp;quot;);&lt;br /&gt;
    } catch (Exception evt) {}&lt;br /&gt;
  &lt;br /&gt;
    ColoredToolTipExample f = new ColoredToolTipExample();&lt;br /&gt;
    f.addWindowListener(new WindowAdapter() {&lt;br /&gt;
      public void windowClosing(WindowEvent e) {&lt;br /&gt;
        System.exit(0);&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
    f.setSize(300, 100);&lt;br /&gt;
    f.show();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
         &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Disable / enable application tool tips ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
 &lt;br /&gt;
import java.awt.FlowLayout;&lt;br /&gt;
import java.awt.HeadlessException;&lt;br /&gt;
import java.awt.event.ActionEvent;&lt;br /&gt;
import java.awt.event.ActionListener;&lt;br /&gt;
import javax.swing.JButton;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
import javax.swing.ToolTipManager;&lt;br /&gt;
public class Main extends JFrame {&lt;br /&gt;
  public Main() throws HeadlessException {&lt;br /&gt;
    setSize(300, 300);&lt;br /&gt;
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);&lt;br /&gt;
    getContentPane().setLayout(new FlowLayout(FlowLayout.CENTER));&lt;br /&gt;
    JButton disable = new JButton(&amp;quot;DISABLE&amp;quot;);&lt;br /&gt;
    disable.setToolTipText(&amp;quot;disabled.&amp;quot;);&lt;br /&gt;
    disable.addActionListener(new ActionListener() {&lt;br /&gt;
      public void actionPerformed(ActionEvent e) {&lt;br /&gt;
        ToolTipManager.sharedInstance().setEnabled(false);&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
    JButton enable = new JButton(&amp;quot;ENABLE&amp;quot;);&lt;br /&gt;
    enable.setToolTipText(&amp;quot;enabled.&amp;quot;);&lt;br /&gt;
    enable.addActionListener(new ActionListener() {&lt;br /&gt;
      public void actionPerformed(ActionEvent e) {&lt;br /&gt;
        ToolTipManager.sharedInstance().setEnabled(true);&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
    getContentPane().add(enable);&lt;br /&gt;
    getContentPane().add(disable);&lt;br /&gt;
  }&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    new Main().setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Enabling and Disabling Tool Tips ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
import javax.swing.ToolTipManager;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    // Enable tool tips for the entire application&lt;br /&gt;
    ToolTipManager.sharedInstance().setEnabled(true);&lt;br /&gt;
    // Disable tool tips for the entire application&lt;br /&gt;
    ToolTipManager.sharedInstance().setEnabled(false);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Html tooltips ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
import javax.swing.JLabel;&lt;br /&gt;
import javax.swing.JPanel;&lt;br /&gt;
public class HtmlToolTipDemo extends JPanel {&lt;br /&gt;
  public static void main(String[] a) {&lt;br /&gt;
    JFrame mainFrame = new JFrame();&lt;br /&gt;
    JLabel label = new JLabel(&amp;quot;label&amp;quot;);&lt;br /&gt;
     label.setToolTipText(&amp;quot;&amp;lt;html&amp;gt;First line&amp;lt;br&amp;gt;Second Line&amp;lt;/html&amp;gt;&amp;quot;);&lt;br /&gt;
    mainFrame.getContentPane().add(label);&lt;br /&gt;
    mainFrame.setSize(100, 100);&lt;br /&gt;
    mainFrame.setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
           &lt;br /&gt;
         &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Italicize the second line ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
import javax.swing.JButton;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    JButton component = new JButton();&lt;br /&gt;
    component.setToolTipText(&amp;quot;&amp;lt;html&amp;gt;&amp;quot; + &amp;quot;This is a&amp;quot; + &amp;quot;&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;&amp;quot; + &amp;quot;tool tip&amp;quot; + &amp;quot;&amp;lt;/i&amp;gt;&amp;lt;/html&amp;gt;&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Make a tool tips appear immediately ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
import javax.swing.ToolTipManager;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    // Get current delay&lt;br /&gt;
    int initialDelay = ToolTipManager.sharedInstance().getInitialDelay();&lt;br /&gt;
    // Show tool tips immediately&lt;br /&gt;
    ToolTipManager.sharedInstance().setInitialDelay(0);&lt;br /&gt;
    // Show tool tips after a second&lt;br /&gt;
    initialDelay = 1000;&lt;br /&gt;
    ToolTipManager.sharedInstance().setInitialDelay(initialDelay);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Making Tool Tips Appear Immediately ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
import javax.swing.ToolTipManager;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    // Get current delay&lt;br /&gt;
    int initialDelay = ToolTipManager.sharedInstance().getInitialDelay();&lt;br /&gt;
    // Show tool tips immediately&lt;br /&gt;
    ToolTipManager.sharedInstance().setInitialDelay(0);&lt;br /&gt;
    // Show tool tips after a second&lt;br /&gt;
    initialDelay = 1000;&lt;br /&gt;
    ToolTipManager.sharedInstance().setInitialDelay(initialDelay);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Making Tool Tips Remain Visible ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
import javax.swing.ToolTipManager;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    // Get current delay&lt;br /&gt;
    int dismissDelay = ToolTipManager.sharedInstance().getDismissDelay();&lt;br /&gt;
    // Keep the tool tip showing&lt;br /&gt;
    dismissDelay = Integer.MAX_VALUE;&lt;br /&gt;
    ToolTipManager.sharedInstance().setDismissDelay(dismissDelay);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Modify the behaviour of the default JToolTip ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
import java.awt.BorderLayout;&lt;br /&gt;
import java.awt.Color;&lt;br /&gt;
import java.awt.Point;&lt;br /&gt;
import java.awt.event.MouseEvent;&lt;br /&gt;
import javax.swing.JButton;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
import javax.swing.JToolTip;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String args[]) {&lt;br /&gt;
    JFrame frame = new JFrame(&amp;quot;JToolTip Sample&amp;quot;);&lt;br /&gt;
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);&lt;br /&gt;
    JButton b1 = new JButton(&amp;quot;Button 1&amp;quot;) {&lt;br /&gt;
      public JToolTip createToolTip() {&lt;br /&gt;
        JToolTip tip = super.createToolTip();&lt;br /&gt;
        tip.setForeground(Color.YELLOW);&lt;br /&gt;
        return tip;&lt;br /&gt;
      }&lt;br /&gt;
      public Point getToolTipLocation(MouseEvent event) {&lt;br /&gt;
        return new Point((event.getX() + 100), (event.getY() + 100));&lt;br /&gt;
      }&lt;br /&gt;
    };&lt;br /&gt;
    b1.setToolTipText(&amp;quot;HELLO&amp;quot;);&lt;br /&gt;
    frame.add(b1, BorderLayout.NORTH);&lt;br /&gt;
    frame.setSize(300, 150);&lt;br /&gt;
    frame.setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== MultiLine ToolTip Example ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
// Example from http://www.crionics.ru/products/opensource/faq/swing_ex/SwingExamples.html&lt;br /&gt;
/* (swing1.1beta3) */&lt;br /&gt;
&lt;br /&gt;
import java.awt.Dimension;&lt;br /&gt;
import java.awt.FontMetrics;&lt;br /&gt;
import java.awt.Graphics;&lt;br /&gt;
import java.awt.Toolkit;&lt;br /&gt;
import java.awt.event.WindowAdapter;&lt;br /&gt;
import java.awt.event.WindowEvent;&lt;br /&gt;
import java.io.BufferedReader;&lt;br /&gt;
import java.io.IOException;&lt;br /&gt;
import java.io.StringReader;&lt;br /&gt;
import java.util.Enumeration;&lt;br /&gt;
import java.util.Vector;&lt;br /&gt;
import javax.swing.JButton;&lt;br /&gt;
import javax.swing.JComponent;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
import javax.swing.JToolTip;&lt;br /&gt;
import javax.swing.SwingUtilities;&lt;br /&gt;
import javax.swing.UIManager;&lt;br /&gt;
import javax.swing.plaf.metal.MetalToolTipUI;&lt;br /&gt;
/**&lt;br /&gt;
 * @version 1.0 11/09/98&lt;br /&gt;
 */&lt;br /&gt;
public class MultiLineToolTipExample extends JFrame {&lt;br /&gt;
  public MultiLineToolTipExample() {&lt;br /&gt;
    super(&amp;quot;Multi-Line ToolTip Example&amp;quot;);&lt;br /&gt;
    JButton button = new JButton(&amp;quot;Hello, world&amp;quot;) {&lt;br /&gt;
      public JToolTip createToolTip() {&lt;br /&gt;
        MultiLineToolTip tip = new MultiLineToolTip();&lt;br /&gt;
        tip.setComponent(this);&lt;br /&gt;
        return tip;&lt;br /&gt;
      }&lt;br /&gt;
    };&lt;br /&gt;
    button.setToolTipText(&amp;quot;Hello\nworld&amp;quot;);&lt;br /&gt;
    getContentPane().add(button);&lt;br /&gt;
  }&lt;br /&gt;
  public static void main(String args[]) {&lt;br /&gt;
    try {&lt;br /&gt;
        UIManager.setLookAndFeel(&amp;quot;com.sun.java.swing.plaf.windows.WindowsLookAndFeel&amp;quot;);&lt;br /&gt;
    } catch (Exception evt) {}&lt;br /&gt;
  &lt;br /&gt;
    MultiLineToolTipExample f = new MultiLineToolTipExample();&lt;br /&gt;
    f.addWindowListener(new WindowAdapter() {&lt;br /&gt;
      public void windowClosing(WindowEvent e) {&lt;br /&gt;
        System.exit(0);&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
    f.setSize(300, 100);&lt;br /&gt;
    f.show();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
class MultiLineToolTip extends JToolTip {&lt;br /&gt;
  public MultiLineToolTip() {&lt;br /&gt;
    setUI(new MultiLineToolTipUI());&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
class MultiLineToolTipUI extends MetalToolTipUI {&lt;br /&gt;
  private String[] strs;&lt;br /&gt;
  private int maxWidth = 0;&lt;br /&gt;
  public void paint(Graphics g, JComponent c) {&lt;br /&gt;
    FontMetrics metrics = Toolkit.getDefaultToolkit().getFontMetrics(&lt;br /&gt;
        g.getFont());&lt;br /&gt;
    Dimension size = c.getSize();&lt;br /&gt;
    g.setColor(c.getBackground());&lt;br /&gt;
    g.fillRect(0, 0, size.width, size.height);&lt;br /&gt;
    g.setColor(c.getForeground());&lt;br /&gt;
    if (strs != null) {&lt;br /&gt;
      for (int i = 0; i &amp;lt; strs.length; i++) {&lt;br /&gt;
        g.drawString(strs[i], 3, (metrics.getHeight()) * (i + 1));&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  public Dimension getPreferredSize(JComponent c) {&lt;br /&gt;
    FontMetrics metrics = Toolkit.getDefaultToolkit().getFontMetrics(&lt;br /&gt;
        c.getFont());&lt;br /&gt;
    String tipText = ((JToolTip) c).getTipText();&lt;br /&gt;
    if (tipText == null) {&lt;br /&gt;
      tipText = &amp;quot;&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
    BufferedReader br = new BufferedReader(new StringReader(tipText));&lt;br /&gt;
    String line;&lt;br /&gt;
    int maxWidth = 0;&lt;br /&gt;
    Vector v = new Vector();&lt;br /&gt;
    try {&lt;br /&gt;
      while ((line = br.readLine()) != null) {&lt;br /&gt;
        int width = SwingUtilities.ruputeStringWidth(metrics, line);&lt;br /&gt;
        maxWidth = (maxWidth &amp;lt; width) ? width : maxWidth;&lt;br /&gt;
        v.addElement(line);&lt;br /&gt;
      }&lt;br /&gt;
    } catch (IOException ex) {&lt;br /&gt;
      ex.printStackTrace();&lt;br /&gt;
    }&lt;br /&gt;
    int lines = v.size();&lt;br /&gt;
    if (lines &amp;lt; 1) {&lt;br /&gt;
      strs = null;&lt;br /&gt;
      lines = 1;&lt;br /&gt;
    } else {&lt;br /&gt;
      strs = new String[lines];&lt;br /&gt;
      int i = 0;&lt;br /&gt;
      for (Enumeration e = v.elements(); e.hasMoreElements(); i++) {&lt;br /&gt;
        strs[i] = (String) e.nextElement();&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    int height = metrics.getHeight() * lines;&lt;br /&gt;
    this.maxWidth = maxWidth;&lt;br /&gt;
    return new Dimension(maxWidth + 6, height + 4);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
           &lt;br /&gt;
         &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Set a tool tip for swing component ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
import java.awt.FlowLayout;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
import javax.swing.JLabel;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    JFrame frame = new JFrame(&amp;quot;Tool Tip Demo&amp;quot;);&lt;br /&gt;
    frame.setSize(200, 200);&lt;br /&gt;
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);&lt;br /&gt;
    JLabel label = new JLabel(&amp;quot;Hover on me!&amp;quot;);&lt;br /&gt;
    label.setToolTipText(&amp;quot;My JLabel Tool Tip&amp;quot;);&lt;br /&gt;
    frame.getContentPane().setLayout(new FlowLayout(FlowLayout.CENTER));&lt;br /&gt;
    frame.getContentPane().add(label);&lt;br /&gt;
    frame.setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Set the location of the tool tip such that its nw corner coincides with the bottom center of the button ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
import java.awt.Point;&lt;br /&gt;
import java.awt.event.MouseEvent;&lt;br /&gt;
import javax.swing.JButton;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    JButton button = new JButton(&amp;quot;My Button&amp;quot;) {&lt;br /&gt;
      public Point getToolTipLocation(MouseEvent event) {&lt;br /&gt;
        return new Point(getWidth() / 2, getHeight());&lt;br /&gt;
      }&lt;br /&gt;
    };&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Setting a Tool Tip ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
import javax.swing.JButton;&lt;br /&gt;
import javax.swing.JComponent;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    JComponent button = new JButton(&amp;quot;Label&amp;quot;);&lt;br /&gt;
    // Set tool tip text&lt;br /&gt;
    button.setToolTipText(&amp;quot;tool tip text&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Setting the Location of a Tool Tip ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
import java.awt.Point;&lt;br /&gt;
import java.awt.event.MouseEvent;&lt;br /&gt;
import javax.swing.JButton;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    JButton button = new JButton(&amp;quot;My Button&amp;quot;) {&lt;br /&gt;
      public Point getToolTipLocation(MouseEvent event) {&lt;br /&gt;
        return new Point(0, 0);&lt;br /&gt;
      }&lt;br /&gt;
    };&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Showing an Image in a ToolTip ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
import java.awt.Dimension;&lt;br /&gt;
import java.awt.FontMetrics;&lt;br /&gt;
import java.awt.Graphics;&lt;br /&gt;
import java.awt.Image;&lt;br /&gt;
import javax.swing.ImageIcon;&lt;br /&gt;
import javax.swing.JComponent;&lt;br /&gt;
import javax.swing.JLabel;&lt;br /&gt;
import javax.swing.JToolTip;&lt;br /&gt;
import javax.swing.SwingUtilities;&lt;br /&gt;
import javax.swing.plaf.metal.MetalToolTipUI;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) {&lt;br /&gt;
    JLabel wonLabel = new JLabel() {&lt;br /&gt;
      public JToolTip createToolTip() {&lt;br /&gt;
        return new ImageToolTip();&lt;br /&gt;
      }&lt;br /&gt;
    };&lt;br /&gt;
    wonLabel.setToolTipText(&amp;quot;asdf&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
class ImageToolTip extends JToolTip {&lt;br /&gt;
  public ImageToolTip() {&lt;br /&gt;
    setUI(new ImageToolTipUI());&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
class ImageToolTipUI extends MetalToolTipUI {&lt;br /&gt;
  public void paint(Graphics g, JComponent c) {&lt;br /&gt;
    FontMetrics metrics = c.getFontMetrics(g.getFont());&lt;br /&gt;
    g.setColor(c.getForeground());&lt;br /&gt;
    g.drawString(((JToolTip) c).getTipText(), 1, 1);&lt;br /&gt;
    g.drawImage(new ImageIcon(&amp;quot;yourImage&amp;quot;).getImage(), 1, metrics.getHeight(), c);&lt;br /&gt;
  }&lt;br /&gt;
  public Dimension getPreferredSize(JComponent c) {&lt;br /&gt;
    FontMetrics metrics = c.getFontMetrics(c.getFont());&lt;br /&gt;
    String tipText = ((JToolTip) c).getTipText();&lt;br /&gt;
    if (tipText == null) {&lt;br /&gt;
      tipText = &amp;quot;&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
    Image image = new ImageIcon(&amp;quot;yourImage&amp;quot;).getImage();&lt;br /&gt;
    int width = SwingUtilities.ruputeStringWidth(metrics, tipText);&lt;br /&gt;
    int height = metrics.getHeight() + image.getHeight(c);&lt;br /&gt;
    if (width &amp;lt; image.getWidth(c)) {&lt;br /&gt;
      width = image.getWidth(c);&lt;br /&gt;
    }&lt;br /&gt;
    return new Dimension(width, height);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Showing an Image in a Tool Tip with HTML ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
import javax.swing.JButton;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    JButton component = new JButton();&lt;br /&gt;
    String imageName = &amp;quot;file:image.jpg&amp;quot;;&lt;br /&gt;
    component.setToolTipText(&amp;quot;&amp;lt;html&amp;gt;Here is an image &amp;lt;img src=&amp;quot; + imageName + &amp;quot;&amp;gt;&amp;lt;/html&amp;gt;&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== ToolTip Location Example ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
// Example from http://www.crionics.ru/products/opensource/faq/swing_ex/SwingExamples.html&lt;br /&gt;
/* (swing1.1.1) */&lt;br /&gt;
&lt;br /&gt;
import java.awt.Container;&lt;br /&gt;
import java.awt.Point;&lt;br /&gt;
import java.awt.event.ActionEvent;&lt;br /&gt;
import java.awt.event.ActionListener;&lt;br /&gt;
import java.awt.event.MouseEvent;&lt;br /&gt;
import java.awt.event.WindowAdapter;&lt;br /&gt;
import java.awt.event.WindowEvent;&lt;br /&gt;
import javax.swing.Box;&lt;br /&gt;
import javax.swing.BoxLayout;&lt;br /&gt;
import javax.swing.JButton;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
import javax.swing.JLabel;&lt;br /&gt;
import javax.swing.JOptionPane;&lt;br /&gt;
import javax.swing.JPanel;&lt;br /&gt;
import javax.swing.JTextField;&lt;br /&gt;
import javax.swing.UIManager;&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * @version 1.0 08/27/98&lt;br /&gt;
 */&lt;br /&gt;
public class ToolTipLocationExample extends JFrame {&lt;br /&gt;
  public ToolTipLocationExample() {&lt;br /&gt;
    super(&amp;quot;ToolTip Location Example&amp;quot;);&lt;br /&gt;
    // above position&lt;br /&gt;
    JButton buttonAbove = new JButton(&amp;quot;Above&amp;quot;) {&lt;br /&gt;
      public Point getToolTipLocation(MouseEvent e) {&lt;br /&gt;
        return new Point(20, -30);&lt;br /&gt;
      }&lt;br /&gt;
    };&lt;br /&gt;
    buttonAbove.setToolTipText(&amp;quot;Hello world&amp;quot;);&lt;br /&gt;
    // blow (default) position&lt;br /&gt;
    JButton buttonBelow = new JButton(&amp;quot;Below&amp;quot;);&lt;br /&gt;
    buttonBelow.setToolTipText(&amp;quot;Hello world&amp;quot;);&lt;br /&gt;
    // whatever&lt;br /&gt;
    final RelocatableToolTipButton buttonRelocate = new RelocatableToolTipButton(&lt;br /&gt;
        &amp;quot;Relocate&amp;quot;);&lt;br /&gt;
    buttonRelocate.setToolTipText(&amp;quot;Hello world&amp;quot;);&lt;br /&gt;
    buttonRelocate.addActionListener(new ActionListener() {&lt;br /&gt;
      JPanel messagePanel = createPanel();&lt;br /&gt;
      JTextField locationX, locationY;&lt;br /&gt;
      public void actionPerformed(ActionEvent e) {&lt;br /&gt;
        Point p = buttonRelocate.getToolTipLocation(null);&lt;br /&gt;
        if (p == null) {&lt;br /&gt;
          locationX.setText(&amp;quot;default&amp;quot;);&lt;br /&gt;
          locationY.setText(&amp;quot;default&amp;quot;);&lt;br /&gt;
        } else {&lt;br /&gt;
          locationX.setText(Integer.toString(p.x));&lt;br /&gt;
          locationY.setText(Integer.toString(p.y));&lt;br /&gt;
        }&lt;br /&gt;
        int result = JOptionPane.showOptionDialog(&lt;br /&gt;
            ToolTipLocationExample.this, messagePanel, &amp;quot;Location&amp;quot;,&lt;br /&gt;
            JOptionPane.OK_CANCEL_OPTION,&lt;br /&gt;
            JOptionPane.QUESTION_MESSAGE, null, null, null);&lt;br /&gt;
        if (result == JOptionPane.OK_OPTION) {&lt;br /&gt;
          try {&lt;br /&gt;
            int x = Integer.parseInt(locationX.getText());&lt;br /&gt;
            int y = Integer.parseInt(locationY.getText());&lt;br /&gt;
            buttonRelocate.setToolTipLocation(new Point(x, y));&lt;br /&gt;
          } catch (NumberFormatException ex) {&lt;br /&gt;
            ex.printStackTrace();&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
      private JPanel createPanel() {&lt;br /&gt;
        JPanel p = new JPanel();&lt;br /&gt;
        p.setLayout(new BoxLayout(p, BoxLayout.X_AXIS));&lt;br /&gt;
        p.add(new JLabel(&amp;quot;  X: &amp;quot;));&lt;br /&gt;
        p.add(locationX = new JTextField());&lt;br /&gt;
        p.add(new JLabel(&amp;quot;  Y: &amp;quot;));&lt;br /&gt;
        p.add(locationY = new JTextField());&lt;br /&gt;
        return p;&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
    JPanel panel = new JPanel();&lt;br /&gt;
    panel.add(buttonAbove);&lt;br /&gt;
    panel.add(buttonBelow);&lt;br /&gt;
    panel.add(buttonRelocate);&lt;br /&gt;
    Container c = getContentPane();&lt;br /&gt;
    c.setLayout(new BoxLayout(c, BoxLayout.Y_AXIS));&lt;br /&gt;
    c.add(Box.createVerticalStrut(30));&lt;br /&gt;
    c.add(panel);&lt;br /&gt;
  }&lt;br /&gt;
  class RelocatableToolTipButton extends JButton {&lt;br /&gt;
    Point toolTipLocation;&lt;br /&gt;
    RelocatableToolTipButton(String label) {&lt;br /&gt;
      super(label);&lt;br /&gt;
      toolTipLocation = null;&lt;br /&gt;
    }&lt;br /&gt;
    public Point getToolTipLocation(MouseEvent e) {&lt;br /&gt;
      return toolTipLocation;&lt;br /&gt;
    }&lt;br /&gt;
    public void setToolTipLocation(Point location) {&lt;br /&gt;
      toolTipLocation = location;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  public static void main(String args[]) {&lt;br /&gt;
    try {&lt;br /&gt;
        UIManager.setLookAndFeel(&amp;quot;com.sun.java.swing.plaf.windows.WindowsLookAndFeel&amp;quot;);&lt;br /&gt;
    } catch (Exception evt) {}&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
    ToolTipLocationExample frame = new ToolTipLocationExample();&lt;br /&gt;
    frame.addWindowListener(new WindowAdapter() {&lt;br /&gt;
      public void windowClosing(WindowEvent e) {&lt;br /&gt;
        System.exit(0);&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
    frame.setSize(300, 130);&lt;br /&gt;
    frame.setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
         &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Tooltip Sample ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
import java.awt.BorderLayout;&lt;br /&gt;
import java.awt.Container;&lt;br /&gt;
import javax.swing.JButton;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
import javax.swing.JPanel;&lt;br /&gt;
import javax.swing.JToolTip;&lt;br /&gt;
public class TooltipSample {&lt;br /&gt;
  public static void main(String args[]) {&lt;br /&gt;
    String title = &amp;quot;Tooltip Sample&amp;quot;;&lt;br /&gt;
    JFrame frame = new JFrame(title);&lt;br /&gt;
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);&lt;br /&gt;
    Container container = frame.getContentPane();&lt;br /&gt;
    JPanel panel = new JPanel();&lt;br /&gt;
    panel.setToolTipText(&amp;quot;&amp;lt;HtMl&amp;gt;Tooltip&amp;lt;br&amp;gt;Message&amp;quot;);&lt;br /&gt;
    container.add(panel, BorderLayout.CENTER);&lt;br /&gt;
    JButton button = new JButton(&amp;quot;Hello World&amp;quot;) {&lt;br /&gt;
      public JToolTip createToolTip() {&lt;br /&gt;
        JToolTip tip = super.createToolTip();&lt;br /&gt;
        tip.setBackground(Color.yellow);&lt;br /&gt;
        tip.setForeground(Color.green);&lt;br /&gt;
        return tip;&lt;br /&gt;
      }&lt;br /&gt;
      public boolean contains(int x, int y) {&lt;br /&gt;
        if (x &amp;lt; 100) {&lt;br /&gt;
          setToolTipText(&amp;quot;Got Green Eggs?&amp;quot;);&lt;br /&gt;
        } else {&lt;br /&gt;
          setToolTipText(&amp;quot;Got Ham?&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
        return super.contains(x, y);&lt;br /&gt;
      }&lt;br /&gt;
    };&lt;br /&gt;
    button.setToolTipText(&amp;quot;Hello World&amp;quot;);&lt;br /&gt;
    frame.getContentPane().add(button, BorderLayout.NORTH);&lt;br /&gt;
    frame.setSize(300, 150);&lt;br /&gt;
    frame.setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
         &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Use the default tool tip location ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
import java.awt.Point;&lt;br /&gt;
import java.awt.event.MouseEvent;&lt;br /&gt;
import javax.swing.JButton;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    JButton button = new JButton(&amp;quot;My Button&amp;quot;) {&lt;br /&gt;
      public Point getToolTipLocation(MouseEvent event) {&lt;br /&gt;
        return null;&lt;br /&gt;
      }&lt;br /&gt;
    };&lt;br /&gt;
    // Set the tool tip text&lt;br /&gt;
    button.setToolTipText(&amp;quot;aString&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Working with Tooltip Text ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
import java.awt.BorderLayout;&lt;br /&gt;
import java.awt.Container;&lt;br /&gt;
import javax.swing.JButton;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
public class ButtonTipTest {&lt;br /&gt;
  public static void main(String args[]) {&lt;br /&gt;
    JFrame frame = new JFrame(&amp;quot;Tool Tips&amp;quot;);&lt;br /&gt;
    Container contentPane = frame.getContentPane();&lt;br /&gt;
    JButton b = new JButton(&amp;quot;Button&amp;quot;);&lt;br /&gt;
    b.setToolTipText(&amp;quot;Go Away&amp;quot;);&lt;br /&gt;
    contentPane.add(b, BorderLayout.NORTH);&lt;br /&gt;
    frame.setSize(300, 200);&lt;br /&gt;
    frame.show();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
         &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;/div&gt;</summary>
			</entry>

	</feed>