В моем java-приложении с графическим интерфейсом есть компоненты, которые необходимо масштабировать несколько раз, и я делаю это с помощью следующего кода:
Image newImage = myimage.getScaledInstance(width, height, Image.SCALE_REPLICATE);
ImageIcon newIcon = new ImageIcon(newImage);
this.setIcon(newIcon);
this.setSize(width,height);
//increment width, height
Сначала это работает нормально, но после многих итераций (пара сотен) новый конструктор ImageIcon () отнимает слишком много времени (около 1 секунды), основываясь на некоторых простых проверках времени. Остальная часть кода является быстрой.
Почему это происходит после многих итераций, и как я могу остановить замедление при увеличении итераций? (Загрузка изображений в фоновом потоке не будет работать, поскольку загрузка изображений не является операцией с постоянным временем).