我想创建一个捕获屏幕(1280x720 res)然后显示它的应用程序。这个代码在一个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) 绘制图像的信息。谁能给我看一个例子?或者,如果有更好的方法,也许可以为我指明正确的方向?