首先,我作为网站程序员来到Java.在JavaScript中,您只需调用addEventListener函数即可添加mousemove,mouseover或click事件.根据我对Java的有限经验,您不能只从任何对象实现MouseListener接口.
基本上,到目前为止我所拥有的是一个JPanel,它绘制了一些具有x / y / width / height值的形状(带有绘制方法的CustomShape对象).我想在形状对象中添加一些类型的鼠标监听器,这样我就可以触发形状的移动/滚动/点击事件.只是将CustomLhaner接口实现到CustomShape对象不起作用(我认为这是显而易见的原因).我已经查找了如何设计自定义事件监听器,但似乎并不是可以创建自定义鼠标监听器.
我最终使用鼠标监听器添加到JPanel,然后循环遍历所有形状对象.如果形状对象附加了“侦听器”,并且鼠标坐标已验证鼠标事件已发生,则会触发该方法.最初,它很好,但随着应用程序越来越发达,它开始变得非常混乱.另外,如果不复制一堆代码,我将永远无法将形状对象/接口复制到另一个应用程序.
作为一个简单的说明:(实际代码非常大)
Interface CustomShape{
int width, height, x, y;
void paint(Graphics g);
}
public class StarShape implements CustomShape{
int width, height, x, y;
public StarShape(){
width = 100;
height = 100;
x = 50;
y = 50;
}
void paint(Graphics g){
g.setColor(Color.black);