这样行不行?
绘制graphic。
监听鼠标位置,当它在一范围内时,且停止0.5秒以上,就绘制图形,以鼠标当前坐标为准。一旦鼠标移动,即不再显示。
图形动态生成,根据针对不同坐标范围,有不同的tiptext,由tiptext来确定
矩形的长度。

解决方案 »

  1.   

    1.1不太清楚。
    如果是用swing可以用JButton.setToolTipText()
      

  2.   

    实在不行,可以加一个label,设置为隐形的,监听button的mouse enterted的事件,如果进入,则显示label,退出则隐藏label.
      

  3.   

    peacock_king(孔雀王)
    所言有道理!
    不过如果继承一个Button重载相干函数的
    会简单一些吧!
      

  4.   

    用JButton的setToolTipText可以实现这个功能的。
    下面的例子我在w2000+jdk1.4.0+jr31.4.0测试成功。希望在你的机器上能通过。其实主要的是要响应applet的ActionListener事件。
    import java.applet.*;
    import java.awt.*;
    import java.awt.event.*;
    import java.awt.Robot.*;
    import javax.swing.*;
    public class TestMouse extends Applet implements MouseListener,MouseMotionListener
     ,ActionListener
    {
    JButton jButton1 = new JButton();
     public void init()
     {
     this.addMouseListener(this);
     this.addMouseMotionListener(this);
     }  public void mouseClicked(MouseEvent e)
     {
     if(e.getClickCount()==1)
    showStatus("You single hit at X--"+e.getX()+"--Y--"+e.getY());
     else
    if(e.getClickCount()==2)
     showStatus("You double hit at X--"+e.getX()+"--Y--"+e.getY()); try{Robot m_Robot=new Robot();
    m_Robot.mouseMove(500,500);
    }
    catch(Exception ee){}  }  public void mouseEntered(MouseEvent e)
     {
    showStatus("mouse into applet");
    Integer.valueOf("222").intValue();
     // Point pp=null;
     // pp.x=50;
     // pp.y=50;
     // e.translatePoint(50,350);
     }  public void mouseExited(MouseEvent e)
     {
    showStatus("mouse leave applet");
     }  public void mousePressed(MouseEvent e)
     {
     showStatus("down mouse");
     }
    public void mouseReleased(MouseEvent e)
     {
     showStatus("up mouse");
     } public void mouseMoved(MouseEvent e)
     {
     showStatus("X: "+e.getX()+"Y: "+e.getY());  } public void mouseDragged(MouseEvent e)
     {
     showStatus("Dragged mouse");
     }
    public void actionPerformed(ActionEvent e)
    {
    if (e.getActionCommand().equals("disable"))
    {
    jButton1.setEnabled(false); } else {
    jButton1.setEnabled(true); }
    }
    public TestMouse()
    {
    try
    {
    jbInit();
    }
    catch(Exception e)
    {
    e.printStackTrace();
    }
    }
    private void jbInit() throws Exception
    {
    jButton1.addActionListener(this);
    jButton1.setToolTipText("applet中铵钮提示信息");
    jButton1.setText("jButton1");
    this.add(jButton1, null);
    }
    }
      

  5.   

    我是happy1979, 我先说说我的想法--我自己做了一个ImageButton类,它实现了比1.1中Button更多的功能,它的父类是Canvas,所以我要实现tiptext就必须重写mouseEnter(),在这个函数里我用getLocationOnScreen得到按钮在屏幕上的位置,然后再确定tiptext显示的位置,我觉得应该把tiptext放在一个label中,把这个label再放在一个panel里来显示,开始时panel隐藏,mouseEnter()时,panel在显示,可是现在的问题是panel.hide()以后,在执行panel.show()什么都没有,请各位大虾指教!!!!!!!!!