Java 仅拍摄完整JFrame和JFrame的快照
嘿,伙计们,我已经开发了一个代码来拍摄我整个屏幕的屏幕截图,但我希望它只拍摄我Jframe中的东西的屏幕截图。顺便说一下,我以后会用它来打印图像的。其中一个主要问题是,鼠标也会进入快照内部。我不要鼠标或底部的两个按钮。我可以只更改按钮的visi,但对于鼠标和只在Jframe内拍摄,应该怎么做?这是我的代码,它拍摄了整个屏幕的截图Java 仅拍摄完整JFrame和JFrame的快照,java,swing,awt,awtrobot,Java,Swing,Awt,Awtrobot,嘿,伙计们,我已经开发了一个代码来拍摄我整个屏幕的屏幕截图,但我希望它只拍摄我Jframe中的东西的屏幕截图。顺便说一下,我以后会用它来打印图像的。其中一个主要问题是,鼠标也会进入快照内部。我不要鼠标或底部的两个按钮。我可以只更改按钮的visi,但对于鼠标和只在Jframe内拍摄,应该怎么做?这是我的代码,它拍摄了整个屏幕的截图 try{ Thread.sleep(1000); Toolkit tk
try{
Thread.sleep(1000);
Toolkit tk = Toolkit.getDefaultToolkit(); //Toolkit class returns the default toolkit
Dimension d = tk.getScreenSize();
//Dimension class object stores width & height of the toolkit screen
// toolkit.getScreenSize() determines the size of the screen
Rectangle rec = new Rectangle(0, 0, d.width, d.height);
//Creates a Rectangle with screen dimensions,
Robot ro = new Robot(); //to capture the screen image
BufferedImage img = ro.createScreenCapture(rec);
File f;
f = new File("myimage.jpg"); // File class is used to write the above generated buffered image to a file
ImageIO.write(img, "jpg", f);
} catch (Exception ex) {
System.out.println(ex.getMessage());
}
我认为最好制作组件的图像(一个
JFrame
也是一个组件
):
非常感谢你!顺便说一句,这是一个更清楚、更好的答案,所以这个答案不应该是重复的:|谢谢本!
BufferedImage img = new BufferedImage(yourComponent.getWidth(), yourComponent.getHeight(), BufferedImage.TYPE_INT_RGB);
yourComponent.paint(img.getGraphics());
File outputfile = new File("saved.png");
ImageIO.write(img, "png", outputfile);