Foros del Web » Programación para mayores de 30 ;) » Java »

Capturar escritorio java

Estas en el tema de Capturar escritorio java en el foro de Java en Foros del Web. Hola Amigos y amigas. Este es mi primer mensaje aqui, y espero del primero de muchos. Vereis , soy nuevo en esto del java y ...
  #1 (permalink)  
Antiguo 17/01/2012, 08:23
 
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.
  #2 (permalink)  
Antiguo 17/01/2012, 11:30
Avatar de Carlangueitor
Moderador ლ(ಠ益ಠლ)
 
Fecha de Ingreso: marzo-2008
Ubicación: México
Mensajes: 10.037
Antigüedad: 16 años, 1 mes
Puntos: 1329
Respuesta: Capturar escritorio java

Muevo tu tema al foro de Java.

Saludos
__________________
Grupo Telegram Docker en Español
  #3 (permalink)  
Antiguo 17/01/2012, 22:11
Avatar de zero0097  
Fecha de Ingreso: abril-2010
Ubicación: México
Mensajes: 481
Antigüedad: 14 años
Puntos: 69
Respuesta: Capturar escritorio java

Código PHP:
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);

        
ImageIO.write(imagen"png", new File(captura01));
        
System.out.println("[Captura iniciada]");

        
//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.SEVEREnullex);
    } catch (
IOException ex) {
        
Logger.getLogger(CapturaPantalla.class.getName()). log(Level.SEVEREnullex);
    } catch (
AWTException ex) {
        
Logger.getLogger(CapturaPantalla.class.getName()). log(Level.SEVEREnullex);
    }

Solo te puedo decir que no es necesario anidar los try y los catch, con un solo try puedes tener varios catch.....y si no quieres tener varias excepciones pues capturala de una sola
Código PHP:
catch(Exception e) {
// estas tratando a todas las excepciones igual, tal vez de convenga esto


No se si se solucione tu problema pues no me queda bien cual es el error que te da....puedes ponerlo para saber que es

Etiquetas: escritorio, google, ide
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:16.