Как удалить несколько изображений только при нажатии мыши?

У меня проблема с mouselisteners. Я пытаюсь создать игру, в которой вам нужно соединять картинки, перетаскивая мышь (щелкнув). Теперь я пытаюсь удалить несколько значков, нажимая левую кнопку мыши и перетаскивая их по другим изображениям. Теперь изображения удаляются, когда я навожу на них указатель мыши, но это должно происходить только тогда, когда я удерживаю кнопку мыши нажатой.

public void addListeners() {
    /*@Override
    public void mouseReleased(MouseEvent e) {
        super.mouseReleased(null);
    */

    this.addMouseListener(new MouseAdapter() {
        @Override
        public void mousePressed(MouseEvent e) {
            if (e.getButton() ==  MouseEvent.BUTTON1)
            clicked= true;
        }
        @Override
        public void mouseEntered(MouseEvent e) {
            if (clicked== true)
            setIcon(null);
           }

        @Override
        public void mouseReleased(MouseEvent e) {
            if (e.getButton() == MouseEvent.BUTTON1)
            clicked = false;
        }
    });

}

person DampedFred    schedule 17.02.2015    source источник
comment
Небольшое предложение: возможно, вы захотите кодировать на английском языке. Это облегчает понимание для большинства программистов на земле (= на stackoverflow) и немного менее нудно: D   -  person Pieter De Bie    schedule 17.02.2015


Ответы (1)


В событии, введенном мышью, ваша проверка if выполняет присваивание, а не операцию равенства. Операция присваивания возвращает новое значение, что в данном случае означает, что ваше условие всегда выполняется, поскольку вы присваиваете ему значение true. Так должно быть

if (geklikt == true) //(2 equal signs)
person Scott Woodward    schedule 17.02.2015