Ver Mensaje Individual
  #1 (permalink)  
Antiguo 17/01/2012, 08:23
seintex
 
Fecha de Ingreso: enero-2012
Mensajes: 1
Antigüedad: 12 años, 3 meses
Puntos: 0
Capturar escritorio java

Hola Amigos y amigas.

Este es mi primer mensaje aqui, y espero del primero de muchos.
Vereis , soy nuevo en esto del java y me han encargado una cosilla que parece facil pero no se como resolverla.
He de hacer un boton, que tiene que realizar un print del escritorio (en el formato que sea, png, jpg...) y enviarlo por mail.
Lo estoy haciendo con netbeans 7.1, es el IDE que se usar por ahora.

Os dejo el codigo que tengo por ahora escrito, tened en cuenta que he aprendido java yo solo y hay muchsimos conceptos que no controlo, y entre google y guias he conseguido descifrar cosillas para realizarlo, pero no funciona del todo, asi que toda ayuda sera bienvenida.


import java.awt.*;
import java.awt.image.*;
import java.io.*;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.imageio.ImageIO;
import javax.imageio.*;

public class CapturaPantalla extends javax.swing.JFrame {


public CapturaPantalla() {
initComponents();
}
private void BotonCapturarMouseClicked(java.awt.event.MouseEven t evt) {
//Declaramos una cadena que sera el nombre del archivo
String captura01 = null;

//Utilizamos un try-catch por si nos da algun error poder retenerlo
try {
//Esta variable ya declarada nos permitira coger el tamaño por pixeles de la pantalla
Dimension tamañopant = java.awt.Toolkit.getDefaultToolkit().getScreenSize ();
Rectangle pantallarect = new Rectangle (tamañopant);
Robot robot = new Robot();
//Aqui crearemos la captura en si misma
BufferedImage imagen = robot.createScreenCapture(pantallarect);
try {
ImageIO.write(imagen, "png", new File(captura01));
System.out.println("[Captura iniciada]");
try {
//Haremos un sleep de 5 segundos
Thread.sleep(5*1000);
String NombreFichero = "c:\\captura01.png";

En esta parte me falta colocar el ultimo catch con la excepcion y llamar a la public class CapturaPantalla para hace un capturescreen,pero no me deja, supongo que porque lo estoy haciendo desde un boton private void

} catch (InterruptedException ex) {
Logger.getLogger(CapturaPantalla.class.getName()). log(Level.SEVERE, null, ex);
}
} catch (IOException ex) {
Logger.getLogger(CapturaPantalla.class.getName()). log(Level.SEVERE, null, ex);
}
} catch (AWTException ex) {
Logger.getLogger(CapturaPantalla.class.getName()). log(Level.SEVERE, null, ex);
}



}

Si alguien me pudiera ayudar le estaria muy agradecido.