首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java JFrame MouseListener

Java JFrame MouseListener
EN

Stack Overflow用户
提问于 2013-12-02 21:07:28
回答 1查看 271关注 0票数 0

我有一个以小方格为背景的JFrame。正方形就是图片。平方的数量取决于JFrame大小,因此我使用ArrayList,并使用以下方法将JLabels添加到JFrame:

代码语言:javascript
复制
for(int i = 0; i < squares.size(); i++){
   add(squares.get(i));
}

我想写一个方法,当鼠标进入正方形时,它会改变它的颜色。我已经实现了MouseListener。但是,这不起作用(它适用于正常的JLabels):

代码语言:javascript
复制
ArrayList<JLabel> squares = new ArrayList<JLabel>();

。。。

代码语言:javascript
复制
@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,则可以做一些事情?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-12-02 21:14:55

但是,这不起作用(它适用于正常的JLabels):

这句话毫无意义。JLabel是JLabel。只要你把标签添加到框架中,它就能工作。您还创建了一个ArrayList这个事实并不影响标签在框架上的工作方式。

代码语言:javascript
复制
Object source = e.getSource();

您已经有了源代码,所以您所需要做的就是将其转换为JLabel:

代码语言:javascript
复制
JLabel enteredLabel = (JLabel).getSource();
enteredLabel.doSomething(...)
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20337856

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档