fal*_*ure 6 java user-interface swing tooltip custom-component
我想在Swing中实现具有自定义行为的工具提示:用户在组件上悬停的时间越长,工具提示中应显示的细节越多(即,在用户悬停几秒钟后添加一些新行)在组件上).我只需要检查这是否真的可以使用Swing而不会让事情变得太乱.我此刻的想法可能是:
这样的事情是否可行或者这不是与Swing合作的好方法(对不起,我对它很新)?有没有更好的方法呢?
[编辑]嗯,刚才记得ToolTipManager是一个单例,其构造函数只有包可见性,因此无法扩展.
[编辑2]我正在尝试一些解决方案.我忘记添加的一件事是我确实需要知道哪个组件正在盘旋 - 我想这意味着我需要使用mouseEntered()方法处理某种类型的侦听器(或者能够访问它信息).并且不需要与弹出/工具提示的其他交互 - 它只需要显示信息.
小智 1
(这可能看起来有点令人困惑,所以如果您需要我澄清,请告诉我,我会尽力向您展示我如何描绘代码)我认为您的想法可能会像您扩展它一样工作,并且还制作一个扩展的私有类Thread,然后在run()方法中执行类似的操作
while(true)
{
sleep(1);
timeElapsed++;
}
Run Code Online (Sandbox Code Playgroud)
在您的扩展类中ToolTipManager,为该扩展类创建一个字段Thread,并实例mouseEntered(MouseEvent e)化如下内容:
extendsThreadClass = new ExtendsThreadClass();
extendsThreadClass.start();
Run Code Online (Sandbox Code Playgroud)
然后在mouseExited(MouseEvent e)方法中做
extendsThreadClass = null;
然后在mouseEntered(MouseEvent e)开始之后的方法中Thread ,您可以在时间之后做您想做的事情,例如
if(timeElapsed > 3000)
{
//what you want to do here
}
Run Code Online (Sandbox Code Playgroud)
抱歉,这可能会让您感到困惑,请告诉我是否可以为您解答
| 归档时间: |
|
| 查看次数: |
601 次 |
| 最近记录: |