title: How can I draw my own ToolTip in place of the default for Swing components?
body: <p>I'm attempting to create my own custom ToolTip for a program I've ported to Java, I'm trying to match the original programs ToolTips (it was written in Delphi). I've got some code that allows me to draw "inside" a ToolTip but for some reason, if I Override <code>paint(Graphics g, JComponent c)</code> and leave it blank it still draws a ToolTip, and anything I attempt to draw will be drawn "inside" this little boxed ToolTip and I can't draw "outside" of it.  </p>
  
  <pre><code>import java.awt.*;
  import javax.swing.*;
  import javax.swing.plaf.basic.BasicToolTipUI;
  
  class MultiLineToolTipUI extends BasicToolTipUI {  
  
      @Override
      public void paint(Graphics g, JComponent c) {
          //int mY = 0;
          //int mX = 0;
  
          //int xPoints[] = {mX, mX, mX + 15};
          //int yPoints[] = {mY, mY + 25, mY + 25};
          //Polygon p = new Polygon(xPoints, yPoints, 3);
          //g.setColor(Color.BLACK);
          //g.fillPolygon(p);
          //g.fillRoundRect(mX, mY, 100, 50, 30, 30);
      }
  
      public static void main (String args[])
      {
          JButton button = new JButton ("Mouse Over ME!") {
              public JToolTip createToolTip() {
                  MultiLineToolTip tip = new MultiLineToolTip();
                  tip.setComponent(this);
                  return tip;
              }
          };
          //JButton button = new JButton("Mouse Over ME!");
          button.setToolTipText("Hello, World");
  
          JFrame frame = new JFrame("Basic SSCCE");
          frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
          frame.add( button );
          frame.pack();
          frame.setLocationRelativeTo( null );
          frame.setVisible( true );
  
      }
  
      static class MultiLineToolTip extends JToolTip
      {
          public MultiLineToolTip()
          {
              setUI(new MultiLineToolTipUI());
          }
      }
  }</code></pre>
  
  <p>This is what I have, and like I said, even without the lines in <code>paint</code> it's drawing on it's own.</p>
  
  <p>Any advice to get around this? Or a better way to go about what I'm trying to do?  </p>
  
  <p>CLARIFICATION: The first answer by Camickr was very helpful, however I should clarify my goal is to get the box that is automatically drawn from somewhere outside of <code>paint</code> to go away, or be invisible.</p>