Java Swing Перекрасить изображение - PullRequest
1 голос
/ 21 декабря 2011

Я хотел бы реализовать DragAndDrop для изображения, но не могу заставить функцию перерисовки Swing работать с конкретным изображением.

Код:

public class playerFrame extends JFrame{
...
    private void destroyerImageMouseDragged(java.awt.event.MouseEvent evt)  
    }                                             
    repaintCurrentPosition(evt);
    }               

    public void repaintCurrentPosition(MouseEvent e){
        this.setLocation(e.getX(), e.getY());
        this.repaint();
    }

this.repaint <- эта функция перерисовывает весь кадр, а не только изображение, которое я хочу перекрасить, размером примерно 50x50. Как перекрасить конкретное изображение JPEG без создания нового класса? </p>

спасибо.

Ответы [ 4 ]

1 голос
/ 22 декабря 2011

Как вы делаете перетаскивание?

Самый простой способ - просто добавить Icon в JLabel, а затем перетащить метку. Каждый раз, когда вы вызываете setLocation (...) для метки, она сама перерисовывается ().

Класс Component Mover сделает всю тяжелую работу за вас.

1 голос
/ 21 декабря 2011

this.repaint приведет к перерисовке родительского кадра.Звоните repaint только на элемент управления, удерживающий ваше изображение.

Пример: обновить это изображение, загруженное на JLabel:

ImageIcon icon = createImageIcon("images/middle.gif");
label = new JLabel("Image and Text", icon, JLabel.CENTER);

Вы делаете:

label.repaint();
1 голос
/ 22 декабря 2011
not just the Image I'd like it to repaint, which is about 50x50 size

JComponent # paint Немедленно осторожно с EDT

0 голосов
/ 21 декабря 2011

Звоните repaint только на панель, где нарисовано ваше изображение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...