向面板添加多个鼠标侦听器
Adding more than one mouse listener to a panel
我正在尝试向面板添加多个鼠标侦听器,但我希望它们像这样在同一行上:
Paint.paint.addMouseListener(Shape.circle,Shape.blah);
这可能吗?
我知道你可以这样做:
Paint.paint.addMouseListener(Shape.circle);
Paint.paint.addMouseListener(Shape.blah);
这还不错,但我认为如果您不使用数组会更容易,如果可能的话,您可以将它添加到同一行。那么,有人知道这是否可能吗?谢谢。
没有 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 参数被解释为一个数组,您可以像在任何数组上一样对其进行迭代。
我正在尝试向面板添加多个鼠标侦听器,但我希望它们像这样在同一行上:
Paint.paint.addMouseListener(Shape.circle,Shape.blah);
这可能吗? 我知道你可以这样做:
Paint.paint.addMouseListener(Shape.circle);
Paint.paint.addMouseListener(Shape.blah);
这还不错,但我认为如果您不使用数组会更容易,如果可能的话,您可以将它添加到同一行。那么,有人知道这是否可能吗?谢谢。
没有 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 参数被解释为一个数组,您可以像在任何数组上一样对其进行迭代。