From 4db81e96b21bec4a0b1f0e3283605033efe8e720 Mon Sep 17 00:00:00 2001 From: Sameera Date: Mon, 17 Oct 2016 00:24:25 +0530 Subject: [PATCH 1/3] Adding Print Screen in Java --- printscreen/pom.xml | 31 ++++++++++++++ .../org/baeldung/corejava/Screenshot.java | 42 +++++++++++++++++++ .../org/baeldung/corejava/ScreenshotTest.java | 39 +++++++++++++++++ 3 files changed, 112 insertions(+) create mode 100644 printscreen/pom.xml create mode 100644 printscreen/src/main/java/org/baeldung/corejava/Screenshot.java create mode 100644 printscreen/src/test/java/org/baeldung/corejava/ScreenshotTest.java diff --git a/printscreen/pom.xml b/printscreen/pom.xml new file mode 100644 index 0000000000..25316a3b48 --- /dev/null +++ b/printscreen/pom.xml @@ -0,0 +1,31 @@ + + 4.0.0 + + com.baeldung + corejava-printscreen + 1.0-SNAPSHOT + jar + + How to Print Screen in Java + https://github.com/eugenp/tutorials + + + UTF-8 + + + + + junit + junit + 3.8.1 + test + + + junit + junit + 4.12 + test + + + diff --git a/printscreen/src/main/java/org/baeldung/corejava/Screenshot.java b/printscreen/src/main/java/org/baeldung/corejava/Screenshot.java new file mode 100644 index 0000000000..57a754bb83 --- /dev/null +++ b/printscreen/src/main/java/org/baeldung/corejava/Screenshot.java @@ -0,0 +1,42 @@ +package org.baeldung.corejava;; + +import javax.imageio.ImageIO; +import java.awt.*; +import java.awt.image.BufferedImage; +import java.io.File; + +public class Screenshot { + + private String filePath; + private String filenamePrefix; + private String fileType; + private int timeToWait; + + public Screenshot(String filePath, String filenamePrefix, + String fileType, int timeToWait) { + this.filePath = filePath; + this.filenamePrefix = filenamePrefix; + this.fileType = fileType; + this.timeToWait = timeToWait; + } + + public void getScreenshot() { + try { + Thread.sleep(timeToWait); + Rectangle rectangle = new Rectangle(Toolkit.getDefaultToolkit().getScreenSize()); + Robot robot = new Robot(); + BufferedImage img = robot.createScreenCapture(rectangle); + ImageIO.write(img, fileType, setupFileNamePath()); + } catch (Exception ex) { + System.out.println("Error occurred while getting the Print Screen."); + } + } + + private File setupFileNamePath() { + return new File(filePath + filenamePrefix + "." + fileType); + } + + private Rectangle getScreenSizedRectangle(final Dimension d) { + return new Rectangle(0, 0, d.width, d.height); + } +} diff --git a/printscreen/src/test/java/org/baeldung/corejava/ScreenshotTest.java b/printscreen/src/test/java/org/baeldung/corejava/ScreenshotTest.java new file mode 100644 index 0000000000..588c2eea78 --- /dev/null +++ b/printscreen/src/test/java/org/baeldung/corejava/ScreenshotTest.java @@ -0,0 +1,39 @@ +package org.baeldung.corejava; + +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +import java.io.File; + +import static org.junit.Assert.*; + + +public class ScreenshotTest { + + private Screenshot screenshot; + private String filePath; + private String fileName; + private String fileType; + private File file; + + @Before + public void setUp() throws Exception { + filePath = ""; + fileName = "Screenshot"; + fileType = "jpg"; + file = new File(filePath + fileName + "." + fileType); + screenshot = new Screenshot(filePath, fileName, fileType, 2000); + } + + @Test + public void testGetScreenshot() throws Exception { + screenshot.getScreenshot(); + assertTrue(file.exists()); + } + + @After + public void tearDown() throws Exception { + file.delete(); + } +} \ No newline at end of file From 8fb51bdfd6f4e915e0e542ab795d5adab1eeef2b Mon Sep 17 00:00:00 2001 From: Sameera Date: Tue, 18 Oct 2016 22:35:50 +0530 Subject: [PATCH 2/3] Removed unwanted Junit deps and updating the Junit version as a property --- printscreen/pom.xml | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/printscreen/pom.xml b/printscreen/pom.xml index 25316a3b48..ddb813a7a2 100644 --- a/printscreen/pom.xml +++ b/printscreen/pom.xml @@ -12,19 +12,14 @@ UTF-8 + 4.12 junit junit - 3.8.1 - test - - - junit - junit - 4.12 + ${junit.version} test From 3e31921e49e3d06ea55c51a497b157ad0f42ff8b Mon Sep 17 00:00:00 2001 From: Sameera Date: Tue, 18 Oct 2016 22:49:09 +0530 Subject: [PATCH 3/3] Removed try catch and set to throw the exception --- .../java/org/baeldung/corejava/Screenshot.java | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/printscreen/src/main/java/org/baeldung/corejava/Screenshot.java b/printscreen/src/main/java/org/baeldung/corejava/Screenshot.java index 57a754bb83..d33761932f 100644 --- a/printscreen/src/main/java/org/baeldung/corejava/Screenshot.java +++ b/printscreen/src/main/java/org/baeldung/corejava/Screenshot.java @@ -20,16 +20,12 @@ public class Screenshot { this.timeToWait = timeToWait; } - public void getScreenshot() { - try { - Thread.sleep(timeToWait); - Rectangle rectangle = new Rectangle(Toolkit.getDefaultToolkit().getScreenSize()); - Robot robot = new Robot(); - BufferedImage img = robot.createScreenCapture(rectangle); - ImageIO.write(img, fileType, setupFileNamePath()); - } catch (Exception ex) { - System.out.println("Error occurred while getting the Print Screen."); - } + public void getScreenshot() throws Exception { + Thread.sleep(timeToWait); + Rectangle rectangle = new Rectangle(Toolkit.getDefaultToolkit().getScreenSize()); + Robot robot = new Robot(); + BufferedImage img = robot.createScreenCapture(rectangle); + ImageIO.write(img, fileType, setupFileNamePath()); } private File setupFileNamePath() {