将鼠标悬停在缩略图上时显示完整图像为弹出/覆盖

时间:2012-01-22 22:24:47

标签: java image swing overlay

我在JPanel中显示缩略图。当鼠标悬停在这样的缩略图上时,我想在缩略图上的叠加层中显示其完整版本。

使用HTML我只会创建一个具有正确位置和高z-index的div,以便覆盖其他所有内容。 Swing可以使用类似的东西吗?

1 个答案:

答案 0 :(得分:3)

一种方法是使用工具提示。

ThumbTip

import javax.swing.*;
import java.awt.GridLayout;

class ThumbTip {

    private static final String HTML = "<html><body>";

    ThumbTip(String[] album) {
        JPanel p = new JPanel(new GridLayout(1,0,2,2));
        for (String url : album) {
            String s = HTML + "<img src='" + url.toString() + "'";
            String size = " width=200 height=150";
            JLabel l = new JLabel(s + size + ">");
            l.setToolTipText(s + ">");
            p.add(l);
        }
        JOptionPane.showMessageDialog(null, p);
    }

    public static void main(String[] args) {
        final String[] urls = {
            "http://pscode.org/media/stromlo1.jpg",
            "http://pscode.org/media/stromlo2.jpg"
        };
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                new ThumbTip(urls);
            }
        });
    }
}

注意:

  1. 在此演示中。每次使用时都会从网上下载工具提示图像。耐心点。
  2. 我没有打扰'缩略图'原始图像​​。 “不包括电池”。源的最新编辑使用HTML(为width指定的height / image)来缩小“缩略图”。我不会更新截图。
  3. 最终使用JWindow的建议更好,因为它可以让您更好地控制弹出窗口的显示位置和持续时间,以及它的确切外观。但这种黑客攻击明显缩短了。 ;)