Есть какой-то сервер, и мне нужно получить изображение с него. И это изображение обновляется иногда. И программе нужно получить это изображение и показывать его на экране всегда в полноэкранном режиме. Я написал некоторый код, и он работает нормально, если запустить его один раз. Но я не могу справиться с обновлением изображения. Мне нужно получать изображение каждые XX минут или секунд с сервера и показывать его на экране. Может быть, мне нужна функция обновления изображения, например - repaint (), но я не знаю, как правильно использовать ее в этом коде. Я пробовал цикл - while и Thread.sleep (), но он не работал должным образом из-за создания большого количества обработанных объектов ... Помогите мне, пожалуйста.
public class MyParser {
public static void main(String[] args) throws IOException, InterruptedException {
String urlStr = "http://192.168.11.111/images/SGBWebServerImage.bmp";
JFrame frame = new JFrame();
URL url = new URL(urlStr);
BufferedImage image = resize(ImageIO.read(url), 320, 1920);
ImageIcon icon = new ImageIcon(image);
frame.add(new JLabel(icon));
frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().setBackground(Color.BLACK);
frame.pack();
frame.setVisible(true);
}
private static BufferedImage resize(BufferedImage img, int height, int width) {
Image tmp = img.getScaledInstance(width, height, Image.SCALE_SMOOTH);
BufferedImage resized = new BufferedImage(width, height, BufferedImage.TYPE_BYTE_GRAY);
Graphics2D g2d = resized.createGraphics();
g2d.drawImage(tmp, 0, 0, null);
g2d.dispose();
return resized;
}