java鼠标监控的灵敏度_【JAVA求助】 鼠标监控 addMouseListener 报错

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

放个镇楼图 希望能吸引点人气~

db885815c9d82b20889d0f15955397aa.png

程序目标是这样的:

我想在屏幕上画很多方框 点击每一个方框之后都会产生不同的功能

部分程序如下:

//这是最外层自定义的Frame class调用了自定义的Screen class

public class Frame extends JFrame

{

public Frame() {

new JFrame();

.

.

Screen screen = new Screen(this);

// add screen to JFrame

this.add(screen);

}

}

// 自定义的Screen class里调用了自定义的GameFrame

public class Screen extends JPanel ... {

.

.

.

public Screen(Frame frame) {

.

.

new GameFrame(..., this.frame);

.

}

// 这个class的目的就是初始化并且画出所有屏幕上需要显示的,可点击的自定义GameButton

public class GameFrame {

.

.

public GameFrame(..., Frame frame) {

GameButton button1 = new GameButton (..., frame);

GameButton button2 = new GameButton (..., frame);

.

.

}

}

// 这边就是会出错的地方了 GameButton class

public class GameButton extends Component implements MouseListener{

.

.

public GameButton(Frame frame, ... ){

.

// 这边不是很确定是否能这样写 因为这样的话每一个GameButton都要让frame重新执行一遍addMouseListener 但是如果不这样写的话 后面被重写的方法还能被执行吗 0.0 求解……

frame.addMouseListener(this);

.

}

.

.

@Override

public void mouseClicked(MouseEvent e) {

.

// 一系列if condition确认了鼠标确实点击在所规定的屏幕范围内

// 这样写代码就是为了不用在外面把所有的

// 之后每新建一个GameButton都会重写特定的Action方法 以此来实现点击之后做的事情 但是这里只打印出每个GameButton的private String name来进行测试

System.out.println(name + " is invoked");

}

.

.

}

运行程序之后不点击鼠标的话是不会报错的

按下鼠标 不抬起来也不会报错 (因为没有执行mouseClicked(MouseEvent e)方法)

问题出在如果点击鼠标 就会报错 好像意思是找不到MouseEvent e

具体错误如下:

.

.

.

at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)

at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)

at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)

at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)

at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)

at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)

at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)

at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)

Exception in thread "AWT-EventQueue-0" java.lang.StackOverflowError

at java.awt.AWTEventMulticaster.mouseClicked(Unknown Source)

at java.awt.AWTEventMulticaster.mouseClicked(Unknown Source)

at java.awt.AWTEventMulticaster.mouseClicked(Unknown Source)

at java.awt.AWTEventMulticaster.mouseClicked(Unknown Source)

at java.awt.AWTEventMulticaster.mouseClicked(Unknown Source)

at java.awt.AWTEventMulticaster.mouseClicked(Unknown Source)

at java.awt.AWTEventMulticaster.mouseClicked(Unknown Source)

.

.

.

求助:为什么错了 如何解决……

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值