Java - изменить файл BufferedImage - PullRequest
0 голосов
/ 02 марта 2011

У меня есть класс Java, который расширяет JPanel и реализует MouseListener и пытается дублировать некоторые базовые функциональные возможности JButton, но с некоторыми загруженными изображениями, чтобы сделать вещи более красивыми.Вот несколько фрагментов моего кода.

Поле класса:

private BufferedImage image;

В конструкторе у меня есть:

try {
    image = ImageIO.read(new File("image/firstImage.png"));
} catch (IOException ex) {
}

Затем я перезаписываю paintComponent для рисования изображения:

public void paintComponent(Graphics g) {
    g.drawImage(image, 0, 0, null);
}

И это прекрасно работает!Ура.Но я также хочу иметь возможность изменять изображение, которое рисуется на экране.Это не работает:

public void mousePressed(MouseEvent arg0) {
        try {
            image = ImageIO.read(new File("image/newImage.png"));
        } catch (IOException ex) {
        }
}

mousePressed () определенно срабатывает успешно (пробовал оператор отладки System.out.println ()), так что мне нужно сделать, чтобы успешно изменить нарисованное изображение?

1 Ответ

1 голос
/ 02 марта 2011

Ваше изображение обновлено, но окно не окрашено снова.Попробуйте позвонить repaint(); после этого.Это должно помочь.

...