伪码如下:
JPanel pane=new JPanel();
pane.addMouseListener(new MouseListener(){
public void mousePressed(MouseEvent e){
... ...
}
public void mouseClicked(MouseEvent e){
... ...
}
.
.
.
}); MouseListener[] listener=pane.getMouseListeners();
System.out.println(listener.length); 结果为
0
连刚添加进去的MouseListener都不能获得,这是怎么回事呀,向高手请教。
JPanel pane=new JPanel();
pane.addMouseListener(new MouseListener(){
public void mousePressed(MouseEvent e){
... ...
}
public void mouseClicked(MouseEvent e){
... ...
}
.
.
.
}); MouseListener[] listener=pane.getMouseListeners();
System.out.println(listener.length); 结果为
0
连刚添加进去的MouseListener都不能获得,这是怎么回事呀,向高手请教。
请问楼主用的什么版本的 SDK ?
public EventListener[] getListeners(Class listenerType) * @param listenerType the type of listeners requested; this parameter
* should specify an interface that descends from
* java.util.EventListener
* @return an array of all objects registered as
* Listeners on this component,
* or an empty array if no such
* listeners have been added
MouseListener[] mls = (MouseListener[])(c.getListeners(MouseListener.class))
MouseListener[] listener=pane.getMouseListeners();
should be
MouseListener[] listener=(MouseListener[])(pane.getListeners(MouseListener.class))
这个JPanel的面板是别人添加进去的,是不是他做了其他的一些设置导致了结果为0的这种情况的发生呀,用hpy121的方法得到的结果也是一样的,而且removeMouseListener()也不起作用,这到底是什么原因啊,郁闷中... 期待高手!
非要让别人帮你猜猜测1:
别人帮你 remove 掉了
猜测2:
你的得到的 JPanel 是另外一个