Captura de pantalla, problma de actualizacion de grafik (como los Screenmates)

Iniciado por egyware, 30 Julio 2007, 17:04 PM

0 Miembros y 1 Visitante están viendo este tema.

egyware

primero que nada alguien a visto los screenmates??
bueno me explico un screenmate es una aplicacion pequena de windows que muestra una figura(puede variada como gatos, monstros,...), que vaga en la pantalla (puro ocio) sin contar de una ventana que lo sostenga y segun su nivel pueden vagar simplemente en la pantalla o interactuar con el mouse o tras ventanas en windows.
les dejo un link para que los veanhttp://screenmates.iespana.es/index.htm
bueno mi dilema es que estoy haciendo mi programa en Java que usa esa misma idea es un reproductor de musica que parece que estuviera en la pantalla pero en realidad es un dialog sin decorar setUndecorated(true) que en el metodo paint pinta una fracion de una captura de pantalla que hago con la clase
java.awt.Robot pero el problema real (lo detallo en pasos)
- 1 inicio el programa (parece que fuera la pantalla)
- 2 abro una ventana cualesquiera de un tamaño que cubre el total de la pantalla
- 3 (en windows) uso alt + tab para ver mi programa y exactamente se ve la captura de pantalla la de atras no la actual osea se ve extraño (no tengo screenchoot como pa mostrarselos ahora) ejemplo como si la ventana del explorer de windows le sacara un pedaso y se ve el escritorio mas mi reproductor de musica (en Linux es el mismo problema)
he itentado con windowsFocusListener (FocusLost)
-como hacer desaparecer mi ventana
-tomar un screenshoot
-hacerla aparecer
-redibujar
pero al hacer la desaparecer vuelve a perder el foco haci que se crea un bucle interminable (bug posiblemente creado por mi jiji)
Gracias si alguien puede ayudarme gracias de como solucionar ese problema de actualizacion de datos
Nota: despues subo un screenshoot de mi programa
         si alguien quiere el source (Java) que solo me lo pida aqui lo se lo paso
         pero debe comprometerse que no me va quitar mi programa solo por ayudar
         despues aqui dejo la version final y de que se trata realmente mi programa
         porque no es solo un reproductor de musica  :rolleyes:(nada malo es algo bueno y    bonito)  :rolleyes:


Yshua

con el screenshot entendería mejor pero te doy una opción.
hay una clase Javax.swing.timer a esta le pasas de parámetro un actionListener(así como lo haces con cualquier evento del mouse o teclado) y un Long que es un tiempo en milisegundos, entonces puedes activar este timer y en el actionPerformed poner algo como esto
dialog.setVisible(false);
         //capturas la pantalla con robot normalmente
         dialog.setVisible(true);
         dialog.requestFocus();

ya lo demás es lo que sea q estes haciendo con con ese dialog pruebalo y me dices si te funciona.

Baruj aba beshem Adonai.
<a href="http://www.cp666group.com">visita mi sitio CP666GROUP</a>

egyware

mmm gracias lo probare no se me habia ocurrido pero creo seguire teniendo el mismo problema
te dejo mi programa pero tiene un inconveniente me faltan los archivos de graficos
(play, stop,...)
pero el problema es el mismo talvez te marque errores pero estan todos atrapados (por lo menos la mayoria)
esta compilado a 1.4, (luego le agregare compatibilidad con el sistema de achivos para windows )
lo subo a geocities
es.geocities.com/egyware/Dedicatoria.jar
y a la U que estoy no se si sirva
http://www.udec.cl/webftp/getfile.php?archivo=Dedicatoria.jar
PS:usa JMF porsia

Yshua

D:\>java -jar D:\Alejo\Dedicatoria.jar
java.io.FileNotFoundException: C:\data.msc (El sistema no puede hallar el archiv
o especificado)
        at java.io.FileInputStream.open(Native Method)
        at java.io.FileInputStream.<init>(Unknown Source)
        at egyware.util.Save.OpenObject(Save.java:76)
        at egyware.maka.Main.main(Main.java:70)
java.lang.ArrayIndexOutOfBoundsException: 0
        at egyware.maka.Main.main(Main.java:78)
Error Saltado XD
Exception in thread "main" java.lang.NoClassDefFoundError: javax/media/Time
        at java.lang.Class.getDeclaredMethods0(Native Method)
        at java.lang.Class.privateGetDeclaredMethods(Unknown Source)
        at java.lang.Class.getDeclaredMethod(Unknown Source)
        at java.awt.Component.isCoalesceEventsOverriden(Unknown Source)
        at java.awt.Component.access$100(Unknown Source)
        at java.awt.Component$2.run(Unknown Source)
        at java.awt.Component$2.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.awt.Component.checkCoalescing(Unknown Source)
        at java.awt.Component.<init>(Unknown Source)
        at java.awt.Container.<init>(Unknown Source)
        at java.awt.Window.<init>(Unknown Source)
        at java.awt.Window.<init>(Unknown Source)
        at java.awt.Dialog.<init>(Unknown Source)
        at java.awt.Dialog.<init>(Unknown Source)
        at javax.swing.JDialog.<init>(Unknown Source)
        at javax.swing.JDialog.<init>(Unknown Source)
        at javax.swing.JDialog.<init>(Unknown Source)
        at egyware.maka.Dd.<init>(Dd.java:38)
        at egyware.maka.Main.<init>(Main.java:49)
        at egyware.maka.Main.main(Main.java:90)

D:\>


No tengo JMF, cuando lo instale lo miro.










Baruj aba beshem Adonai.
<a href="http://www.cp666group.com">visita mi sitio CP666GROUP</a>

egyware

este es el screenshoot
pero ya se me ocurrio como hacerlo con focusWindows gracias Yshua, se me ocurrio cuando me devolvia a la casa despues de leer elpost mi idea es que ese metodo se cancele por un tiempo activando un temporizador o algo asi
a se me olvido lee un archivo serializado de egyware.music.Lista que es una lista de canciones que vas escuchando en eldirecctorio c:\ (windors)
sobre las imagenes que usa las subo aqui debes copiarlas a
"c:\egyware apps\Dedicatoria\pngs" (en windors)a cuidado en elcomputador que estoy es prestado y tiene un virus  %$%#%%$ pero el AVG lo borra (siendo que el avg es bueno pero no excelente) asi que pasalo por tu AV antes de abrir cualquier cosa, porsia no tengo ningun ejecutable solo imagenes png
http://es.geocities.com/egyware/pngs.jar "esta en rar pero lecambie el nombre"

XD
PD:sorry estaba apurado y no escribi bien el link
PD:arregle los link pero no importa ya se me ocurrio como hacerlo

Yshua

no veo los screens XD. bueno ahota estoy algo atareado, mañana los veo

Baruj aba beshem Adonai.
<a href="http://www.cp666group.com">visita mi sitio CP666GROUP</a>

egyware

ni con eso solucione mi problema lo unico que logre fue que se oscureciera mas mis imagenes transparentes

intente con WindowsFocus y cada vez que lo llamaman se bloqueaba por un rato con la clase timer pero naaaninaaa...