Java 在JFileChooser上显示文件名ToolTipText
我有一个Java 在JFileChooser上显示文件名ToolTipText,java,swing,awt,jlist,jfilechooser,Java,Swing,Awt,Jlist,Jfilechooser,我有一个JFileChooser 我希望当鼠标指向JList中的每个文件时,它会显示ToolTipText(将是文件名) 看起来我需要重写JList::getToolTiptText(),但是我在获取文件选择器列表(然后重写getToolTiptText()方法)时遇到问题 我的意思是,我是否必须创建一个扩展JList的新类,然后重写该类中的方法,然后用我创建的新类实例替换文件选择器的JList 我是否需要访问JList ListModel属性 我做了一些调查。这些链接可能有用: 这
JFileChooser
我希望当鼠标指向JList
中的每个文件时,它会显示ToolTipText
(将是文件名)
看起来我需要重写JList::getToolTiptText()
,但是我在获取文件选择器列表(然后重写getToolTiptText()
方法)时遇到问题
我的意思是,我是否必须创建一个扩展JLis
t的新类,然后重写该类中的方法,然后用我创建的新类实例替换文件选择器的JList
我是否需要访问JList ListModel
属性
我做了一些调查。这些链接可能有用:
- 这解决了我的问题。感谢camickr的帮助
1-使用
SwingUtils getDescendantOfType
获取列表
2-添加鼠标侦听器以显示ToolTipText
jList.addMouseMotionListener(new MouseMotionAdapter() {
@Override
public void mouseMoved(MouseEvent e) {
JList l = (JList)e.getSource();
ListModel m = l.getModel();
int index = l.locationToIndex(e.getPoint());
if( index>-1 ) {
l.setToolTipText(m.getElementAt(index).toString());
}
}
});
您可以使用类获取JList组件我是否必须创建一个扩展JList的新类,然后重写该类中的方法,然后用我创建的新类实例替换JFileChooser的JList?`否,您提供的第一个链接显示了如何向JList添加侦听器以设置工具提示文本。或者,也可以使用自定义渲染器替换默认渲染器。因此,您可以创建一个只调用默认渲染器的包装器,然后设置工具提示text.woooooook,非常感谢您的建议!我使用了另一种方法来获取JList(使用JList的
getComponents()
和实例进行递归搜索)。我认为你的选择更简洁。还有,是的,添加一个侦听器就成功了!“这些链接可能很有用:……”哇!我很惊讶有人在RoseIndia网站上找到有用的东西。最好避免。哈哈哈,哎呀,我忽略了这个细节