Created
April 1, 2020 13:18
-
-
Save oksbwn/0a6a38420ab4d129c2cf6711c54d7e68 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import java.awt.Color; | |
import java.awt.Dimension; | |
import java.awt.MouseInfo; | |
import java.awt.Point; | |
import java.awt.Rectangle; | |
import java.awt.Robot; | |
import java.awt.Toolkit; | |
import java.awt.event.MouseAdapter; | |
import java.awt.event.MouseEvent; | |
import java.awt.image.BufferedImage; | |
import java.io.File; | |
import java.text.SimpleDateFormat; | |
import java.util.Date; | |
import javax.imageio.ImageIO; | |
import javax.swing.*; | |
public class Main { | |
static JFrame frame2 = new JFrame(); | |
static Point p; | |
static Point R; | |
static Point D; | |
static int Finaly; | |
static int Startx; | |
static int Starty; | |
static int Finalx; | |
static JTextField jt = new JTextField(); | |
static SimpleDateFormat sdf = new SimpleDateFormat("yyyy_MM_dd_HH_mm_ss"); | |
private static String path="W:"; //Need to change drive as per your machine | |
public static void main(String[] args) { | |
Main cS = new Main(); | |
cS.SnapTaker(); | |
} | |
public void SnapTaker() { | |
Dimension scrSize = Toolkit.getDefaultToolkit().getScreenSize(); // size of the screen | |
frame2.setBounds(0, 0, scrSize.width, scrSize.height); | |
frame2.getContentPane().setLayout(null); | |
frame2.setAlwaysOnTop(true); | |
frame2.setUndecorated(true); | |
frame2.setBackground(new Color(Color.black.getRed(), Color.black.getGreen(), Color.black.getBlue(), 1)); | |
frame2.getContentPane().setBackground(new Color(Color.black.getRed(), Color.black.getGreen(), Color.black.getBlue(), 50)); | |
((JComponent) frame2.getContentPane()).setBorder( | |
BorderFactory.createMatteBorder(2, 2, 2, 2, Color.black)); | |
frame2.setType(javax.swing.JFrame.Type.UTILITY); | |
// frame2.setAlwaysOnTop(true); | |
jt.setBounds(0, 0, 0, 0); | |
jt.addMouseListener(mouseListener); | |
jt.setBorder(BorderFactory.createMatteBorder(2, 2, 2, 2, Color.black)); | |
jt.addMouseMotionListener(mouseListener); | |
jt.setEditable(false); | |
jt.setBackground(new Color(Color.black.getRed(), Color.black.getGreen(), Color.black.getBlue(), 0)); | |
frame2.getContentPane().add(jt); | |
final JLabel cloesButton = new JLabel("Close"); | |
cloesButton.setForeground(Color.red); | |
cloesButton.setToolTipText("Close"); | |
cloesButton.addMouseListener(new MouseAdapter() { | |
@Override | |
public void mouseClicked(MouseEvent arg0) { | |
frame2.dispose(); | |
} | |
@Override | |
public void mouseEntered(MouseEvent arg0) { | |
cloesButton.setForeground(Color.red); | |
} | |
@Override | |
public void mouseExited(MouseEvent arg0) { | |
cloesButton.setForeground(Color.white); | |
} | |
}); | |
cloesButton.setSize(15, 15); | |
cloesButton.setBounds(scrSize.width - 40, 0, 40, 20); | |
final JLabel Snap = new JLabel("Take Snap"); | |
// Snap.setIcon(new ImageIcon(RscLoader.getImage("cam.jpg"))); | |
// Snap.setForeground(Color.white); | |
Snap.setToolTipText("Take Snap"); | |
Snap.addMouseListener(new MouseAdapter() { | |
@Override | |
public void mouseClicked(MouseEvent arg0) { | |
takeSnap(); | |
} | |
@Override | |
public void mouseEntered(MouseEvent arg0) { | |
Snap.setForeground(Color.GREEN); | |
} | |
@Override | |
public void mouseExited(MouseEvent arg0) { | |
Snap.setForeground(Color.white); | |
} | |
}); | |
Snap.setBounds(scrSize.width - 120,0, 80, 20); | |
frame2.getContentPane().add(Snap); | |
frame2.addMouseListener(new MouseAdapter() { | |
@Override | |
public void mousePressed(MouseEvent arg0) { | |
p = MouseInfo.getPointerInfo().getLocation(); | |
//jt.setBounds(0,0,p.x,p.y); | |
} | |
@Override | |
public void mouseReleased(MouseEvent arg0) { | |
R = MouseInfo.getPointerInfo().getLocation(); | |
jt.setBounds(p.x, p.y, R.x - p.x, R.y - p.y); | |
} | |
}); | |
frame2.getContentPane().add(cloesButton); | |
frame2.setVisible(true); | |
} | |
private final static void takeSnap() { | |
try { | |
Robot robot = new Robot(); | |
Rectangle area = new Rectangle(jt.getBounds()); | |
BufferedImage bufferedImage = robot.createScreenCapture(area); | |
File file = new File(path+"\\screenshot_"+sdf.format(new Date())+".png"); | |
boolean i = ImageIO.write(bufferedImage, "jpg", file); | |
if (i) { | |
JOptionPane.showMessageDialog(frame2, "Snapshot Taken Sucessfully !!"); | |
} | |
} catch (Exception e) { | |
JOptionPane.showMessageDialog(frame2, "Error Taking Snapshot !!"); | |
e.printStackTrace(); | |
} | |
} | |
private final static MouseAdapter mouseListener = new MouseAdapter() { | |
int x, y; | |
@Override | |
public void mousePressed(MouseEvent e) { | |
if (e.getButton() == MouseEvent.BUTTON1) { | |
x = e.getX(); | |
y = e.getY(); | |
} | |
} | |
@Override | |
public void mouseDragged(MouseEvent e) { | |
if ((e.getModifiersEx() & MouseEvent.BUTTON1_DOWN_MASK) != 0) { | |
jt.setLocation(e.getXOnScreen() - x, e.getYOnScreen() - y); | |
} | |
} | |
}; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment