我有一个以小方格为背景的JFrame。正方形就是图片。平方的数量取决于JFrame大小,因此我使用ArrayList,并使用以下方法将JLabels添加到JFrame:
for(int i = 0; i < squares.size(); i++){
add(squares.get(i));
}我想写一个方法,当鼠标进入正方形时,它会改变它的颜色。我已经实现了MouseListener。但是,这不起作用(它适用于正常的JLabels):
ArrayList<JLabel> squares = new ArrayList<JLabel>();。。。
@Override
public void mouseEntered(MouseEvent e) {
Object source = e.getSource();
if(source == squares){
System.out.println("AAA");
}
if(source == squares.get(0)){
System.out.println("BBB");
}
}我的问题是:如何从ArrayList中提取元素,这样我就可以将其设置为源,如果它等于source,则可以做一些事情?
发布于 2013-12-02 21:14:55
但是,这不起作用(它适用于正常的JLabels):
这句话毫无意义。JLabel是JLabel。只要你把标签添加到框架中,它就能工作。您还创建了一个ArrayList这个事实并不影响标签在框架上的工作方式。
Object source = e.getSource();您已经有了源代码,所以您所需要做的就是将其转换为JLabel:
JLabel enteredLabel = (JLabel).getSource();
enteredLabel.doSomething(...)https://stackoverflow.com/questions/20337856
复制相似问题