【高分跪求】如何让两个互相重叠的JPanel同时监听到一次鼠标点击事件?

自己编了一个文字游戏,上面有两个相互完全重叠的JPANEL(一个背景,一个文字框,两个Jpanel种类不相同),给两个都加了MouseListener(触发的事件不同,因... 自己编了一个文字游戏,上面有两个相互完全重叠的JPANEL(一个背景,一个文字框,两个Jpanel种类不相同),给两个都加了MouseListener(触发的事件不同,因为两个变化不一样嘛,文本框部分鼠标点击要切换剧情文字,背景框部分要在指定的位置切换背景),但是结果鼠标点击只有上面那层JPanel能触发鼠标点击事件,下面那层没办法,跪求大牛正解!因为是JAVA课程设计,分全给出去了!答得好的再给100分!
指定的位置→指定的剧情位置
展开
 我来答
百度网友845f74e61
2012-04-25 · TA获得超过6929个赞
知道大有可为答主
回答量:4050
采纳率:50%
帮助的人:1606万
展开全部
你看一下我说的对不对。
底下的Panel是显示背景图片的。
上面的panel是显示一些文字的。现在它应该是透明的,这样看起来是一体的。
现在只能点到上面的Panel,所以只有上面的能发生变化,而下边的变不了是吧。

如果是这样,有两个办法来解决。
1.你显示文件的部分,可以是JLabel,这个也是可以变成透明的。这样放在背景的panel 上,这个panel实现鼠标的侦听事件。这样在一个类中就好处理了。
2.如果你不想改变现有的方式,那么你就要写一个侦听器类,把两个panel的实例都传过去。
比如在构造方法中,是两个panel的参数。总之就是让一个侦听器,可以处理两个panel
这样,你就可以根据文字的变化来改变背景。

两个JPanel使用一个侦听器,可以,但你不可能做到两个同时触发。只能是同时控制两个实例。
你的思路想差了。
百度网友24673fc
2012-04-25 · TA获得超过299个赞
知道答主
回答量:142
采纳率:0%
帮助的人:103万
展开全部
假设panel1的鼠标点击事件调用函数:click1(),
panel2的鼠标点击事件调用函数:click2();
同时假设panel2在上层,那么你在写MouseListener的时候这样写:
panel2.addMouseListener(new MouseListener(){
public void mouseClick(Event e){
//panel1事件
click1();
//panel2事件
click2();
}
});
也就是说无论触发哪一个panel的鼠标点击事件,你都调用一下那那两个panel对应的click处理函数,上面的代码不一定准确,只是表达个思想,你看着改吧。
追问
我想让鼠标触发的操作全都是是诸如panel1.showImage()、panel2.repaint()一类的类内方法,这就导致了点击监视器无论放在哪里都够不到另一个类的方法……
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
francis373737
2012-04-24 · 超过24用户采纳过TA的回答
知道答主
回答量:58
采纳率:0%
帮助的人:63.9万
展开全部
不能再上层JPANEL中设置关于坐标的鼠标监听器吗,靠坐标来判断是点到剧情文字还是背景?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
二的很猥琐
2012-04-24 · 超过17用户采纳过TA的回答
知道答主
回答量:88
采纳率:0%
帮助的人:49.9万
展开全部
可不可以用进程,设置一个面板为后台进程
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式