Java 选择不带循环的阵列的所有组件
我已经制作了一个包含Java 选择不带循环的阵列的所有组件,java,arrays,listener,Java,Arrays,Listener,我已经制作了一个包含jlabel的数组,并希望为它们添加一个侦听器 听众不需要确切地知道点击了哪一个,只需要知道点击了哪一个。 有没有办法将侦听器添加到整个数组中,而不是使用“for()”循环 感谢阅读。y您可以在JPanel(或按钮所在的任何组件)上注册侦听器,因此您只需编写一个侦听器 y您可以在JPanel(或按钮所在的任何组件)上注册侦听器,因此只需编写一个侦听器 不,没有现成的解决方案,好的。除了使用愚蠢的黑客,我认为你可能不得不使用for循环,它可能是一个10行代码,没什么好担心的。不
jlabel
的数组,并希望为它们添加一个侦听器
听众不需要确切地知道点击了哪一个,只需要知道点击了哪一个。
有没有办法将侦听器添加到整个数组中,而不是使用“for()”循环
感谢阅读。y您可以在JPanel(或按钮所在的任何组件)上注册侦听器,因此您只需编写一个侦听器 y您可以在JPanel(或按钮所在的任何组件)上注册侦听器,因此只需编写一个侦听器 不,没有现成的解决方案,好的。除了使用愚蠢的黑客,我认为你可能不得不使用for循环,它可能是一个10行代码,没什么好担心的。不,没有现成的解决方案,好吧。除了使用愚蠢的黑客,我认为您可能必须使用for循环,它可能是一个10行代码,无需担心。您可以将jlabel数组封装在一个类中,并实现自己的Add()方法,在添加它们时注册侦听器
这样,您就不必在以后对它们进行迭代。您可以将JLabel数组封装在一个类中,并实现自己的Add()方法,该方法在添加它们时注册侦听器
这样,您就不必在之后对它们进行迭代了。如果是一个jlabel列表,我建议使用-method,它允许您对一组对象应用相同的操作。如果是一个jlabel列表,我建议使用-method,它允许您对一组对象应用相同的操作。如果将标签添加到容器(如JPanel),您可以将侦听器添加到此容器,并知道哪个组件位于特定位置
JPanel panel = new JPanel();
panel.addMouseListener( whichOneListener );
f.setContentPane( panel );
在本例中,我使用了鼠标侦听器,因为它提供了用户单击的位置
private static MouseListener whichOneListener = new MouseAdapter() {
public void mouseClicked( MouseEvent e ) {
JComponent c = ( JComponent ) e.getSource();
JLabel l = ( JLabel ) c.getComponentAt( e.getPoint() );
System.out.println( l.getText() );
}
};
并正确打印单击的组件
完整的源代码是如果将标签添加到容器(如JPanel),则可以将侦听器添加到此容器,并知道哪个组件位于特定位置
JPanel panel = new JPanel();
panel.addMouseListener( whichOneListener );
f.setContentPane( panel );
在本例中,我使用了鼠标侦听器,因为它提供了用户单击的位置
private static MouseListener whichOneListener = new MouseAdapter() {
public void mouseClicked( MouseEvent e ) {
JComponent c = ( JComponent ) e.getSource();
JLabel l = ( JLabel ) c.getComponentAt( e.getPoint() );
System.out.println( l.getText() );
}
};
并正确打印单击的组件
完整的源代码是为什么要避免使用for循环?顺便说一句,我不认为还有其他方法……不要对for()那么刻薄。它在那里帮助你。用它!嗯,如果有其他方法,它会使我的代码更轻,所以我想知道。更轻?用什么术语?for循环在RTL指令实现中非常简单。只需在
JLabel
创建时添加侦听器!!!为什么要避免使用for循环?顺便说一句,我不认为还有其他方法……不要对for()那么刻薄。它在那里帮助你。用它!嗯,如果有其他方法,它会使我的代码更轻,所以我想知道。更轻?用什么术语?for循环在RTL指令实现中非常简单..只需在JLabel
创建时添加侦听器!!!。。除了使用愚蠢的黑客。。。。或者您可以了解您正在使用的库及其提供的选项:。。除了使用愚蠢的黑客。。。。或者,您可以了解正在使用的库及其提供的选项: