Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Swing-获取鼠标悬停的对象_Java_Swing - Fatal编程技术网

Java Swing-获取鼠标悬停的对象

Java Swing-获取鼠标悬停的对象,java,swing,Java,Swing,我有一个JList,希望根据鼠标悬停的条目更改工具提示。我试着在谷歌上搜索我的问题,但没有成功 基本上,我需要得到我当前悬停的对象 感谢您的帮助1)为所有相关元素分配一个属性。 2) 实施该方法 3) 在该方法中,使用获取悬停的元素。为此,必须扩展JList并公开工具提示文本方法。下面是我在不久前使用谷歌发现的一个示例程序: 导入java.awt.EventQueue; 导入java.awt.event.*; 导入javax.swing.*; //自定义类以扩展JList并公开工具提示功能。 类

我有一个JList,希望根据鼠标悬停的条目更改工具提示。我试着在谷歌上搜索我的问题,但没有成功

基本上,我需要得到我当前悬停的对象

感谢您的帮助

1)为所有相关元素分配一个属性。
2) 实施该方法

3) 在该方法中,使用获取悬停的元素。

为此,必须扩展JList并公开工具提示文本方法。下面是我在不久前使用谷歌发现的一个示例程序:

导入java.awt.EventQueue;
导入java.awt.event.*;
导入javax.swing.*;
//自定义类以扩展JList并公开工具提示功能。
类MyList扩展了JList{
公共MyList(){
超级();
//连接鼠标移动适配器,让我们知道鼠标位于项目上方,并显示提示。
addMouseMotionListener(新的MouseMotionAdapter(){
@凌驾
public void mouseMoved(MouseEvent e){
MyList theList=(MyList)e.getSource();
ListModel model=theList.getModel();
int index=list.locationToIndex(e.getPoint());
如果(索引>-1){
setToolTipText(空);
String text=(String)model.getElementAt(index);
setToolTipText(文本);
}
}
});
}
//公开JList的GetToolTiptText事件
公共字符串getToolTipText(MouseEvent e){
返回super.getToolTiptText();
}
}
公共类TestJList扩展了JFrame{
公共静态void main(字符串[]args){
invokeLater(新的Runnable(){
@凌驾
公开募捐{
TestJList myTest=新的TestJList();
myTest.setTitle(“示例JList”);
myTest.setSize(300300);
myTest.setDefaultCloseOperation(关闭时退出);
MyList=新建MyList();
//创建我们的模型并添加一些项目。
DefaultListModel=新的DefaultListModel();
模型。附录(“一”);
模型.附录(“二”);
模型。附录(“三”);
模型。附录(“四”);
//为我们的列表设置模型
list.setModel(model);
ToolTimManager.sharedInstance().registerComponent(列表);
//添加自定义列表并显示表单。
MyTest.add(列表);
MyTest.setVisible(true);
}
});
}
}

希望这能有所帮助。

A我是个新手,但请告诉我:鼠标不在帮助上吗?当鼠标指向上方时会发生什么情况的函数it@DakshShah在这里谈论java,而不是javascript;)连我都在说java@JohannesH. 我使用netbeans,在那里我们做的事情是右键单击对象并转到事件和操作执行是的,我手工完成所有事情是的,我现在自己找到了这个解决方案。但是,谢谢你,我会尝试这一点,因为我重新发明了方向盘。JList已经支持工具提示。只需重写JList的getToolTiptText(…)方法。也可以使用自定义渲染器设置工具提示文本。此外,没有为JList的每个项目生成mouseEntered事件,这是必需的。@camickr您是对的,根据这一点,我将很难找到列表中的特定项目。你有什么建议吗?我的意思是,你能更详细地解释一下“覆盖gettooltiptext”吗?@user2664856,看看sanjeev给出的答案。
mouseMoved
方法中的代码基本上应该移动到
getToolTipText()
方法+1,但不需要MouseListener。只需重写getToolTipText(…)方法(即
mouseMoved()
方法中的代码基本上应该移动到
getTooTipText()
方法)。