当前位置: 首页 > 面试题库 >

摇摆:如何创建一个自定义的JToolTip像小部件,该小部件随鼠标移动

洪凯定
2023-03-14
问题内容

Java Swing问题。

我有一个JPanel显示图表。当我将鼠标移到该图上时,我希望某些信息显示在随鼠标移动的类似工具提示的小部件上。我怎样才能最好地实现这一目标?

我想如果我知道如何JComponentJPanel作为我的绘图画布的绝对位置内放置一个自定义项,就可以解决我的问题。然后,我可以捕获鼠标移动的事件并重新定位/更新小部件。任何其他解决方案(包括可能JToolTip直接使用)也将非常受欢迎!


问题答案:

覆盖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);
    }
}


 类似资料:
  • 问题内容: 我很难找到有关如何编写自定义窗口小部件的文档。 我的问题是: 如果我构建了一个自定义窗口小部件,可以将其等效地用于管理界面或正常形式吗? 如果我想允许用户编辑项目列表,我应该继承什么小部件?我需要重写/实现小部件的哪些方法? 哪种窗口小部件方法负责从用户输入返回到数据模型? 问题答案: 你是对的,Django没有提供有关此特定主题的文档。我建议你查看中的内置小部件django.form

  • 介绍 (Introduction) UiBinder是一个旨在分离功能和用户界面视图的框架。 UiBinder框架允许开发人员将gwt应用程序构建为HTML页面,并在其中配置GWT小部件。 UiBinder框架使与UI设计人员的协作变得更容易,他们比XML源代码更熟悉XML,HTML和CSS UIBinder提供了一种定义用户界面的声明方式。 UIBinder从UI中分离出程序逻辑。 UIBind

  • GWT提供了三种创建自定义用户界面元素的方法。 有三种一般策略可供遵循 - Create a widget by extending Composite Class - 这是创建自定义小部件的最常用和最简单的方法。 在这里,您可以使用现有小部件来创建具有自定义属性的复合视图。 Create a widget using GWT DOM API in JAVA - 以这种方式创建GWT基本窗口小部件

  • 我已经将问题从居中改为自定义的位置。 因为我注意到实际上是居中的,根据文档,它只是添加了页签。 但是如果您希望在避开安全区域时设置一个制表符,或者选项卡中的元素不是(自动)居中对齐,我现在找不到方法。 我还尝试将选项卡包装在小部件中,并获得属性集,但似乎所有的高度都避开了安全区域(通过添加一个常量)。我尝试用小部件包装整个,但是安全区域变成了黑色,我们实际上希望tab bat变得更高,然后在这个更

  • 本文向大家介绍写一个让一句话随着鼠标移动的小插件相关面试题,主要包含被问及写一个让一句话随着鼠标移动的小插件时的应答技巧和注意事项,需要的朋友参考一下

  • 问题内容: 我是Python的新手。我绘制了具有固定坐标的多边形和圆形。现在,我想使用鼠标将此多边形和圆移动到窗口上的其他位置。请指导我该怎么做? 问题答案: 您应该查看QGraphicsView而不是正在执行的操作,它已经内置了所有功能。 http://doc.qt.nokia.com/4.7-snapshot/qgraphicsview.html http://doc.qt.nokia.com