首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MouseListener在JLabel中不起作用

MouseListener在JLabel中不起作用
EN

Stack Overflow用户
提问于 2012-06-24 18:06:10
回答 1查看 949关注 0票数 2

我正在编程的游戏,我的项目的结构如下:

我们有一个所有其他类都继承自它的抽象类。

代码语言:javascript
复制
    public abstract class Bird extends JLabel implements MouseListener {
        private static final long serialVersionUID = 1L;

        private int M_weight;
        private int M_radius;
        private long M_bornTime;
        private int M_maxBirdPower;
        private BirdState M_birdState;
        private boolean B_prepareToShoot;

        public Bird(int weight, int radius, long bornTime, int maxBirdPower,
                BirdState birdState) {
            this.M_weight = weight;
            this.M_radius = radius;
            this.M_bornTime = bornTime;
            this.M_maxBirdPower = maxBirdPower;
            this.M_birdState = birdState;
            this.B_prepareToShoot = false;
            this.addMouseListener(this);
        }

        public BirdState getBirdState() {
            return M_birdState;
        }
    }

还有一些类继承了Bird类并实现了抽象功能,如RedBird类。

代码语言:javascript
复制
    public class RedBird extends Bird {
        private static final long serialVersionUID = 1L;

        public RedBird(int weight, int radius, long bornTime, int maxBirdPower,
                BirdState birdState) {
            super(weight, radius, bornTime, maxBirdPower, birdState);
        }

        @Override
        public void mouseClicked(MouseEvent arg0) {
                System.out.println("Clicked");
        }

        @Override
        public void mouseEntered(MouseEvent arg0) {
        }

        @Override
        public void mouseExited(MouseEvent arg0) {
        }

        @Override
        public void mousePressed(MouseEvent arg0) {
        }

        @Override
        public void mouseReleased(MouseEvent arg0) {
        }
    }

我在JPanel中从RedBird类添加了一个对象,但当我单击该对象时,MouseListener不起作用。问题出在哪里?谁能给我一个解决方案。

提前感谢:)

EN

回答 1

Stack Overflow用户

发布于 2012-06-24 22:03:21

您尚未将鼠标侦听器“添加”到任何JComponent。这就是它不起作用的原因。在您的bird类的构造函数中添加以下代码:

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

https://stackoverflow.com/questions/11176565

复制
相关文章

相似问题

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