介绍
闲着没事做一个小程序,过程中使用到了线程,截图保存到程序文件下。
界面截图
代码
Screenshot.java
public class Screenshot {
public static void main(String arg[]){
new Windows();
}
}
Windows.java
import java.awt.AWTException;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Rectangle;
import java.awt.Robot;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class Windows implements ActionListener{
JFrame jfrm = new JFrame();
JPanel jp_total = new JPanel(new BorderLayout());//边界布局
JPanel jp_1 = new JPanel();
JTextField jxf = new JTextField(10);//文本框长度为10
JButton jbtn_s = new JButton("开始截屏");//查找按钮
JButton jbtn_e = new JButton("停止截屏");//查找按钮
JLabel lab = new JLabel("时间间隔(毫秒):",JLabel.CENTER);
public static boolean bool = false;
public static int jxf_i;
public static int i = 1;
public Windows() {
jfrm.setVisible(true);//窗体可见
jfrm.setTitle("截屏");//窗口标题
jfrm.setSize(500,80);//设置了一个长为500,高为80的框图。
jfrm.setLocation(240,135);//设置一个左上角顶点在(240,135)的窗体。
jfrm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//关闭窗口的时候退出程序
jfrm.add(jp_total);
jp_total.add(jp_1);
jp_1.add(lab);
jp_1.add(jxf);
jp_1.add(jbtn_s);
jp_1.add(jbtn_e);
jbtn_s.addActionListener(this);
jbtn_e.addActionListener(this);
}
@Override
public void actionPerformed(ActionEvent e) {
Object eventSource = e.getSource();
// TODO Auto-generated method stub
if(eventSource == jbtn_s)//开始
{
String jxf_s = jxf.getText();
jxf_i=Integer.parseInt(jxf_s);
System.out.print("开始\n");
bool = true;
MyThread mt = new MyThread();
mt.start();
}
if(eventSource == jbtn_e)//停止
{
System.out.print("停止\n");
bool = false;
}
}
public class MyThread extends Thread {
/**
* 这就是线程执行的逻辑体
*/
@Override
public void run() {
while(bool) {
try {
Thread.currentThread().sleep(jxf_i); //毫秒
scree();
} catch (Exception e) {
e.printStackTrace();
}
System.out.println(bool);
}
}
}
public void scree() throws IOException{
//创建一个robot对象
Robot robut = null;
try {
robut = new Robot();
} catch (AWTException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//获取屏幕分辨率
Dimension d= Toolkit.getDefaultToolkit().getScreenSize();
//打印屏幕分辨率
//System.out.println(d);
//创建该分辨率的矩形对象
Rectangle screenRect=new Rectangle(d);
//根据这个矩形截图
BufferedImage bufferedImage=robut.createScreenCapture(screenRect);
//保存截图
File file=new File("截图"+i+".png");
ImageIO.write(bufferedImage,"png",file);
System.out.println(i);
i++;
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/104995.html