保存图片、录制录像

来源:互联网 发布:snmputil.exe windows 编辑:程序博客网 时间:2024/05/07 22:35

程序要具备健壮性和完整性
在Game.java中
//菜单
private JMenuItem save;//保存图片
private JMenuItem start;//开始录制
private JMenuItem end;//停止录制

public Game(){
 JMenuBar bar=new JMenuBar();//菜单栏
 JMenu menu=new JMenu();//菜单
 JMenu menu=new JMenu("工具");
 save=new JMenuItem("截图");
 vidoe=new JMenuItem("开始录制");
 end=new JMenuItem("停止录制");
 menu.add(save);//菜单项
 menu.addSeparator();//下划线
 menu.add(start);
 menu.add(end);
 //把菜单加到菜单栏里面去
 bar.add(menu);
 this.setJMenuBar(bar);

 save.addActionListener(this);
 //增加监听

}

public void actionPerformed(ActionEvent e){
//用try-catch包围起来
 if(e.getSource()==save){
 int width=(int)Toolket.getDefaultToolkit().getScreenSize().getWidth();//获得屏幕的宽度
 int width=(int)Toolket.getDefaultToolkit().getScreenSize().getHeight();//获得屏幕的高度
 java.awt.Robot root=new Robot();//获得本地所有显示信息
 BufferedImage image=root.createScreenCapture(new Rectangle(0,0,));//创建一个屏幕的图形,截取图片的大小
 
 FileOutputStream fo=new FileOutputStream("d:/象棋.jpg");//保存图片
 ////com.sun.image.codec.jpeg.JPEGCodec.createJPEGEncoder(dest);
 JPeGImageEncoder encoder=JPEGCodec.createJPEGEncoder(fo);
 encoder.encode(image);
 fo.close();
 //把整个窗体截图<<作业>>挑战
 }
}


//做录制
在ChessBoard.java中
private BufferedImage image=null;

//在内存中创建一张跟目前棋盘一模一样的图片
public void createImage(){
 //我们需要构造这个图片
 //画布有多大
 image=new BufferedImage(this.getWidth(),this.getWidth(),BufferedImage.TYPE_INT_RGB);
 //创建图片,获得画笔
 Graphics g=image.getGraphics();
 g.setColor(Color.YELLOW);
}