簡體   English   中英

如何使用Java Swing創建圖像映射?

[英]How to create an image map using Java Swing?

我需要使用Swing制作一張顯示背景圖像的圖像地圖,然后當鼠標懸停(或單擊)特定的熱點時,我需要彈出一個“放大”圖像並顯示它。

我正在考慮擴展JPanel以包括圖像參考,並通過paintComponent(g)方法繪制該參考。 到目前為止,我已經完成了這一部分,下面是代碼:

public class ImagePanel extends JPanel
{
    private static final long serialVersionUID = 1L;

    private Image image;

    public ImagePanel(Image image)
    {
        setImage(image);
    }

    public void setImage(Image newImage)
    {
        image = newImage;
    }

    @Override
    public void paintComponent(Graphics g)
    {
        Dimension size = getSize();
        g.drawImage(image, 0, 0, size.width, size.height, this);
    }

誰能推薦我如何在定義的熱點上偵聽/響應鼠標單擊? 有人可以另外推薦一種顯示彈出窗口的方法嗎? 我的直覺反應是擴展JPopupMenu使其顯示圖像,類似於上面的代碼。

謝謝你的幫助!

要收聽鼠標單擊,請實現MouseListener界面,並將其添加到面板中。 然后,當收到點擊時,您可以按照建議的方式使用JPopupMenu,或者甚至可以使用玻璃窗格顯示放大的圖像。

我猜您想實現與Joshua Marinacci的帖子類似的功能,他也在此處發布了消息源,我將對此進行研究。

我可能會:

  • 創建一些表示每個熱點的Shape實例(可以是一個無聊的舊Rectangle,如果需要創建奇特的形狀,請參見GeneralPath)
  • 注冊一個MouseListener,該鼠標迭代每個Shapes並調用其contains()方法,以查看單擊的坐標是否在所討論的熱點內

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM