你看一下我说的对不对。
底下的Panel是显示背景图片的。
上面的panel是显示一些文字的。现在它应该是透明的,这样看起来是一体的。
现在只能点到上面的Panel,所以只有上面的能发生变化,而下边的变不了是吧。
如果是这样,有两个办法来解决。
1.你显示文件的部分,可以是JLabel,这个也是可以变成透明的。这样放在背景的panel 上,这个panel实现鼠标的侦听事件。这样在一个类中就好处理了。
2.如果你不想改变现有的方式,那么你就要写一个侦听器类,把两个panel的实例都传过去。
比如在构造方法中,是两个panel的参数。总之就是让一个侦听器,可以处理两个panel
这样,你就可以根据文字的变化来改变背景。
两个JPanel使用一个侦听器,可以,但你不可能做到两个同时触发。只能是同时控制两个实例。
你的思路想差了。
假设panel1的鼠标点击事件调用函数:click1(),
panel2的鼠标点击事件调用函数:click2();
同时假设panel2在上层,那么你在写MouseListener的时候这样写:
panel2.addMouseListener(new MouseListener(){
public void mouseClick(Event e){
//panel1事件
click1();
//panel2事件
click2();
}
});
也就是说无论触发哪一个panel的鼠标点击事件,你都调用一下那那两个panel对应的click处理函数,上面的代码不一定准确,只是表达个思想,你看着改吧。
不能再上层JPANEL中设置关于坐标的鼠标监听器吗,靠坐标来判断是点到剧情文字还是背景?
可不可以用进程,设置一个面板为后台进程