画面 (1280x720 解像度) をキャプチャして表示するアプリを作成したいと考えています。このコードは while ループにあるため、進行中です。ここに私が持っているものがあります:
import javax.swing.*;
import java.awt.Rectangle;
import java.awt.Robot;
import java.awt.image.BufferedImage;
public class SV1 {
public static void main(String[] args) throws Exception {
JFrame theGUI = new JFrame();
theGUI.setTitle("TestApp");
theGUI.setSize(1280, 720);
theGUI.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
theGUI.setVisible(true);
Robot robot = new Robot();
while (true) {
BufferedImage screenShot = robot.createScreenCapture(new Rectangle(1280,720));
JLabel picLabel = new JLabel(new ImageIcon( screenShot ));
theGUI.add(picLabel);
}
}
}
この回答からこれを理解しましたが、私が望むものには理想的ではありません。まず、なんらかの理由で、Java のメモリ「Java ヒープ領域」が不足します。次に、表示されている画像が更新されていないため、正しく機能しません。
Graphics (java.awt.Graphics) を使用して画像を描画する方法について読みました。誰でもこの例を見せてもらえますか? または、より良い方法があれば、正しい方向に向けてください。