Zrzut ekranu
Poniższy program jest bardzo prostą implementacją narzędzia do wykonywania zrzutów ekranu. Klasa Screenshoter dostarcza funkcjonalności pozwalające na wykonanie i zapisanie zrzutu we wskazanym miejscu oraz metodę makeAndSave, która łączy obie te funkcjonalności.
Obsługa wszystkich błędów jakie mogą się pojawić jest przerzucana na kod wykorzystujący tą klasę.
Przykładowy program wykorzystujący tą klasę:
package net.programmers.java.faq; import java.awt.AWTException; import java.awt.Rectangle; import java.awt.Robot; import java.awt.Toolkit; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import javax.imageio.ImageIO; public class Screenshoter { private Robot robot; private int width; private int height; private Rectangle screenRct; public Screenshoter() throws AWTException { robot = new Robot(); width = (int) Toolkit.getDefaultToolkit().getScreenSize().getWidth(); height = (int) Toolkit.getDefaultToolkit().getScreenSize().getHeight(); screenRct = new Rectangle(0, 0, width, height); } public void makeAndSave(File target) throws IOException { save(target, make()); } private void save(File target, BufferedImage image) throws IOException { ImageIO.write(image, "jpg", target); } public BufferedImage make() { if (robot != null) { return robot.createScreenCapture(screenRct); } return null; } }
Obsługa wszystkich błędów jakie mogą się pojawić jest przerzucana na kod wykorzystujący tą klasę.
Przykładowy program wykorzystujący tą klasę:
package net.programmers.java.faq; import java.io.File; import java.util.logging.Logger; public class ScreenShotDemo { private final static String RESOURCES_DIR = "./src/main/resources"; public static void main(String[] args) throws Exception { if(!new File(RESOURCES_DIR).exists()){ Logger.getAnonymousLogger().warning("Katalog docelowy nie istnieje! Tworzę nowy katalog!"); new File(RESOURCES_DIR).mkdirs(); } (new Screenshoter()).makeAndSave(new File(RESOURCES_DIR + "/screen.jpg")); } }