Мне нужно написать простое приложение на Java, которое может загружать картинки, показывать их в форме графического интерфейса, разрешать пользователю применять некоторые преобразования и показывать преобразованную картинку.Мое решение работает нормально, но пользовательский интерфейс немного мерцает, потому что метод перерисовки вызывается слишком часто (например, когда пользователь масштабирует изображение с помощью JSlider)
Мой код выглядит следующим образом:
public class ImageCanvas extends Canvas
{
private BufferedImage image;
// ...
@Override
public void paint(Graphics g)
{
Graphics2D g2d = (Graphics2D) g;
if(image != null)
{
// I draw out the image...
}
}
public void setImage(BufferedImage image)
{
this.image = image;
this.repaint();
}
public void setRotation(double rotation)
{
this.rotation = rotation;
this.repaint();
}
public void setScale(double scaleX, double scaleY)
{
//set the scaling field, then repaint ....
}
// and so on...
}
И, конечно же, у меня есть главный элемент управления ImageCanvas в моем основном пользовательском интерфейсе, и я просто вызываю открытые методы (см., Например, метод "setRotation" выше), которые перерисовывают область холста.Я знаю, что это простой вопрос, но я даже не нахожу свойство DoubleBuffered на Canvas ...
Любая помощь приветствуется.