在jlist中悬停项目时显示框

当用户将鼠标悬停在列表中的项目上时,我想显示包含信息的框。如下所示: 我怎样才能做到这一点?这可以在像pidgin或spark这样的聊天应用中看到。     
已邀请:
也许你正在追求像功能一样的工具提示。如果是这样,请查看提供ListCellRenderer组件(如JLabel),并设置JLabel的工具提示。 例如。在工具提示中使用HTML呈现。
import javax.swing.*;

class LabelWithHtmlTooltip {

    public static void main(String[] args) {
        Runnable r = new Runnable() {
            public void run() {
                String html = "<html><body>" +
                    "<h1>Header</h1>" +
                    "<img src='http://pscode.org/media/starzoom-thumb.gif' " +
                    "width='160' height='120'>";
                JLabel label = new JLabel("Point at me!");
                label.setToolTipText(html);
                JOptionPane.showMessageDialog(null, label);
            }
        };
        SwingUtilities.invokeLater(r);
    }
}
    
以下是我尝试实现它的方法: 将MouseListener和MouseMotionListener添加到JList。当鼠标进入列表时,启动等待一定延迟(半秒)的线程。移动或拖动鼠标时,请重新开始等待延迟。当鼠标退出JList时,取消该线程。使用这些侦听器也可以跟踪鼠标位置。 一旦满足延迟(这应该意味着鼠标停留在列表上,没有移动,整个延迟),然后使用SwingUtilities.invokeLater显示信息框。您可以使用JList的locationToIndex来确定鼠标悬停在哪一行上。     

要回复问题请先登录注册