ARV*_*ARV 8 java swing tooltip
Java Swing问题.
我有一个显示图表的JPanel.当我将鼠标移到此图表上时,我希望某些信息显示在随鼠标移动的类似工具提示的小部件上.我怎样才能最好地实现这一点?
我想如果我知道如何将自定义JComponent绝对放在充当我的绘图画布的JPanel中,我的问题就会得到解决.然后我可以捕获鼠标移动事件并重新定位/更新小部件.任何其他解决方案(包括可能直接使用JToolTip)也将非常受欢迎!
如果这个问题有点基础,请道歉.自从我上次使用Swing以来已经很长时间了,所以我还在重新学习如何使用它.提前谢谢了!
覆盖getToolTipText(MouseEvent)
方法以根据鼠标位置动态设置工具提示.
编辑:
如果您希望工具提示随着鼠标不断移动,那么您还需要覆盖该getToolTipLocation()
方法.
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class ToolTipPanel extends JPanel
{
public ToolTipPanel()
{
setPreferredSize( new Dimension(200, 200) );
setToolTipText("");
}
public void paintComponent(Graphics g)
{
g.setColor( Color.red );
g.fillRect(0, 0, 100, 200);
g.setColor( Color.blue );
g.fillRect(100, 0, 100, 200);
}
public String getToolTipText(MouseEvent e)
{
if (e.getX() < 100)
return "red";
else
return "blue";
}
public Point getToolTipLocation(MouseEvent e)
{
Point p = e.getPoint();
p.y += 15;
return p;
// return super.getToolTipLocation(e);
}
public static void main(String[] args)
{
JFrame frame = new JFrame();
frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
frame.getContentPane().add( new ToolTipPanel() );
frame.pack();
frame.setLocationRelativeTo( null );
frame.setVisible(true);
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
6855 次 |
最近记录: |