附上代码:
import java.awt.*
import java.awt.image.*
import java.awt.event.*
import java.io.File
import javax.imageio.ImageIO
import javax.swing.*
public class Camera {
/**
* @param args
*/
public static void main(String[] args) {
CameraJFrame cf=new CameraJFrame()
cf.setAlwaysOnTop(true)
cf.setUndecorated(true)
cf.setVisible(true)
}
}
class CameraJFrame extends JFrame
{
/**
*
*/搭段
private static final long serialVersionUID = 1L
Dimension di=Toolkit.getDefaultToolkit().getScreenSize()
public CameraJFrame()
{
setSize(di)
getContentPane().add(new CameraJPanel())
}
class CameraJPanel extends JPanel implements MouseListener,MouseMotionListener
{
/**
* flag主要是用来判别状态。
* 文件的格式名帆盯是unname+数字编号,格式是png
*/
private static final long serialVersionUID = 1L
BufferedImage bi,get
int startx,starty,endx,endy
int flag=1
String filename="unname"
String fileformat="png"
int count=1
public CameraJPanel()
{
try
{
Robot ro=new Robot()
bi=ro.createScreenCapture(new Rectangle(0,0,di.width,di.height))
}
catch(Exception e)
{
e.printStackTrace()
}
addMouseListener(this)
addMouseMotionListener(this)
}
public void paintComponent(Graphics g)
{
g.drawImage(bi,0,0,di.width,di.height,this)
g.setColor(Color.red)
g.drawRect(startx, starty, endx-startx, endy-starty)
}
public void mouseClicked(MouseEvent e) {
// TODO Auto-generated method stub
if(e.getButton()==MouseEvent.BUTTON3)
{
System.exit(0)
}
else if(e.getClickCount()==2)
{
try
{
Robot ro=new Robot()
get=ro.createScreenCapture(new Rectangle(startx,starty,endx-startx,endy-starty))
String name=filename+String.valueOf(count++)+"."+fileformat
File f=new File(name)
ImageIO.write(get, fileformat, f)
}
catch(Exception ex)
{
ex.printStackTrace()
}
flag=1//置flag为1,以便重新开始截图。
startx=starty=endx=endy=0
repaint()
}
}
public void mouseEntered(MouseEvent e) {}
public void mouseExited(MouseEvent e) {}
public void mousePressed(MouseEvent e) {
if(flag==1)
{
startx=e.getX()
starty=e.getY()
}
}
public void mouseReleased(MouseEvent e) {
flag=0
}
public void mouseDragged(MouseEvent e) {
flag=1
endx=e.getX()
endy=e.getY()
repaint()
}
public void mouseMoved(MouseEvent e) {}
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)