我正在尝试向一个面板添加多个鼠标监听器,但我希望它们像这样在同一行:
Paint.paint.addMouseListener(Shape.circle,Shape.blah);
这可能吗? 我知道你可以这样做:
Paint.paint.addMouseListener(Shape.circle);
Paint.paint.addMouseListener(Shape.blah);
这并不算太糟糕,但我认为如果你不使用数组会更容易,如果可能的话你可以将它添加到同一行。那么,谁知道这是否可能?谢谢。
答案 0 :(得分:2)
没有addMouseListener(...)
方法接受多个侦听器,但您可以编写自己的实用程序方法来执行此操作:
public static void addManyMouseListeners( Component component, MouseListener... mouseListeners ) {
if ( component != null && mouseListeners != null ) {
for ( MouseListener mouseListener : mouseListeners ) {
component.addMouseListener( mouseListener );
}
}
}
varargs参数允许您调用方法,如:
addManyMouseListeners( Paint.paint, Shape.circle, Shape.blah );
事实上,添加尽可能多的鼠标听众。在方法内部,varargs参数被解释为一个数组,并像在任何数组上一样迭代它。