如何将鼠标侦听器添加到图形多边形?

Posted

技术标签:

【中文标题】如何将鼠标侦听器添加到图形多边形?【英文标题】:How can I add mouse listener to graphics Polygon? 【发布时间】:2020-02-14 15:40:57 【问题描述】:

我想为这个多边形添加一个慕斯监听器。如何将鼠标监听器添加到图形Polygon

public class Domx extends JPanel

    Domx()
    

    @Override
    public void paintComponent(Graphics g) 
        super.paintComponent(g);
        Graphics2D g2 = (Graphics2D) g;
        this.setBackground(Color.white);
        Polygon p4=new Polygon();
        for (int i = -1; i < 2; i++) 
                p4.addPoint((int) (X + i * P4[9] / 2), (int) (Y + P1[10] + P2[10] + P3[10] + P4[10]));
        
        for (int i = 1; i > -2; i--) 
            p4.addPoint((int) (X + i * P4[8] / 2), (int) (Y + P1[10] + P2[10] + P3[10]));
        
        g2.fillPolygon(p4);
     
 

【问题讨论】:

你想用鼠标监听器实现什么? 我想为这个多边形添加一个mousse监听器。 - 你不能直接这样做。您只能将 MouseListener 添加到组件。见安德鲁的回答。如果您想获得花哨的效果,请查看 Playing With Shapes 的 ShapeComponent 类,它允许您使用多边形的形状创建组件。 【参考方案1】:

MouseListener 被添加到组件中,Polygon 是……不是。 而是将鼠标侦听器添加到显示它的组件中,然后当发生鼠标操作时,在继续之前检查是否polygon.contains(..)

【讨论】:

以上是关于如何将鼠标侦听器添加到图形多边形?的主要内容,如果未能解决你的问题,请参考以下文章

每次监听器执行时如何更改面板的图形?

如何在 Unity C# 中将 OnPointerDown 侦听器添加到滑块句柄? [复制]

java笔记之图形类详解---事件监听器

Java:将鼠标光标下当前像素的颜色打印到控制台:鼠标侦听器不起作用

如何将侦听器添加到 grpc 方法?

如何将信息窗口添加到标记事件侦听器 [重复]