package robot;
import java.awt.*;
import java.awt.image.*;
import java.io.*;
import javax.imageio.*;
import javax.swing.*;
public class RobotTest extends JFrame {
public static void main(String[] args) throws AWTException {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
RobotFrame frame = new RobotFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
});
}
}
class RobotFrame extends JFrame {
public RobotFrame() {
this.setTitle("Robot Test");
// this.setSize(100, 100);
this.pack();
RobotComponent component = new RobotComponent();
this.add(component);
}
}
class RobotComponent extends JComponent {
public RobotComponent() {
try {
Toolkit kit = Toolkit.getDefaultToolkit();
Dimension screenSize = kit.getScreenSize();
int screenWidth = screenSize.width;
int screenHeight = screenSize.height;
//选中区域的起始坐标(startX,startY),宽(screenWidth-startX),高(screenHeight-startY)
int startX = 0;
int startY = 0;
Rectangle rect = new Rectangle(startX, startY, screenWidth-startX, screenHeight-startY);
Robot robot = new Robot();
image = robot.createScreenCapture(rect);
//将image写到指定的文件中去
String filename = "test";
String suffix = "png";
String name = filename + "." + suffix;
File file = new File(name);
ImageIO.write(image, suffix, file);
System.out.println(file.getAbsolutePath());
} catch (AWTException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public void paintComponent(Graphics g) {
Graphics2D g2 = (Graphics2D) g;
g2.drawImage(image, null, 0, 0);
}
BufferedImage image = null;
}