Maximizar y minimizar

Iniciado por ThePiuner, 19 Agosto 2013, 01:53 AM

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

ThePiuner

Buenas soy nuevo en esta comunidad y me gustaría que me ayudaran en algo, como se hace para minimizar y maximizar una aplicación echa en java con el teclado ? por ejemplo cuando le den 'R' se comienza a ejecutar y se minimiza, ella se estará ejecutando en un bucle infinito controlado por hilo y mientras se este ejecutando y este minimizada si le dan 'S' se detenga y se maximice ?

Alien-Z

#1
Aqui te explican cómo funcionan las operaciones de maximizar/minimizar en java: http://lefunes.wordpress.com/2008/02/18/iniciar-maximizado-o-minimizado-un-jframe/

Dichas operaciones también se pueden ejecutar cuando lees una entrada del teclado.

Saludos.

ThePiuner

Cita de: Alien-Z en 19 Agosto 2013, 14:19 PM
Aqui te explican cómo funcionan las operaciones de maximizar/minimizar en java: http://lefunes.wordpress.com/2008/02/18/iniciar-maximizado-o-minimizado-un-jframe/

Dichas operaciones también se pueden ejecutar cuando lees una entrada del teclado.

Saludos.

Gracias pero eso no es lo que ando buscando, lo que quiero es que cuando le den a la tecla "X" ( cuando digo X es cualquier tecla definida por mi ) se minimice y comience a hacer las operaciones para lo que esta programado y mientras se este ejecutando si le dan a la tecla "X" (otra tecla definida por mi) el programa deje de ejecutarse y se maximice

1mpuls0

#3
Exactamente que deseas hacer.
El tema va más allá de lo que se piensa.

A veces es un poco complicado por el tema del focus.

Para las hotkeys en java existe la clase.metodo  KeyStroke.getKeyStroke.

Y cuando digo exactamente me refiero a que detalles todo, es decir, vas a tener un jframe, vas a tener botones, labels, etc?.


Edito.

También puedes colocar un evento al jframe en este caso sería keyPressed.

Con keyPressen sería así para minimizar.
Código (java) [Seleccionar]

if(evt.getKeyCode()==82){
           this.setExtendedState(javax.swing.JFrame.ICONIFIED);
       }


El problema con esta alternativa es que piedes el foco del jframe. Entonces no serviría para el proposito.


Intenta con Windows Listener, seguro te funciona.


http://docs.oracle.com/javase/tutorial/uiswing/events/windowlistener.html

Saludos.
abc

ThePiuner

Cita de: Darhius en 19 Agosto 2013, 17:12 PM
Exactamente que deseas hacer.
El tema va más allá de lo que se piensa.

A veces es un poco complicado por el tema del focus.

Para las hotkeys en java existe la clase.metodo  KeyStroke.getKeyStroke.

Y cuando digo exactamente me refiero a que detalles todo, es decir, vas a tener un jframe, vas a tener botones, labels, etc?.


Edito.

También puedes colocar un evento al jframe en este caso sería keyPressed.

Con keyPressen sería así para minimizar.
Código (java) [Seleccionar]

if(evt.getKeyCode()==82){
           this.setExtendedState(javax.swing.JFrame.ICONIFIED);
       }


El problema con esta alternativa es que piedes el foco del jframe. Entonces no serviría para el proposito.


Intenta con Windows Listener, seguro te funciona.


http://docs.oracle.com/javase/tutorial/uiswing/events/windowlistener.html

Saludos.

Lo que quiero hacer es algo parecido a un mouse recorder pero que no este limitado a cierta cantidad de intentos, si no que estará de manera ilimitada por medio de hilos con intervalos de un segundo pero el problema es que al comenzarlo ya sea con el keyPressen o con un boton, el problema es a la hora de detenerle ya que no podre utilizar el mouse para hacerlo  :huh:

1mpuls0

#5
Cita de: ThePiuner en 20 Agosto 2013, 00:56 AM
Lo que quiero hacer es algo parecido a un mouse recorder pero que no este limitado a cierta cantidad de intentos, si no que estará de manera ilimitada por medio de hilos con intervalos de un segundo pero el problema es que al comenzarlo ya sea con el keyPressen o con un boton, el problema es a la hora de detenerle ya que no podre utilizar el mouse para hacerlo  :huh:

Por qué dices eso?, no sé si el programa que mencionas lo hace o entendiste mal algo que dije.
La verdad no sé que hace mouse recorder pero tengo una idea de lo que deseas hacer.


Saludos.
abc

TriBlack

Buenas... este codigo sirve para captar las teclas asi la aplicacion pierda el foco espero te sirva 


public class GlobalKeyListenerExample implements NativeKeyListener {
        public void nativeKeyPressed(NativeKeyEvent e) {
                System.out.println("Key Pressed: " + NativeKeyEvent.getKeyText(e.getKeyCode()));

                if (e.getKeyCode() == NativeKeyEvent.VK_ESCAPE) {
                        GlobalScreen.unregisterNativeHook();
                }
        }

        public void nativeKeyReleased(NativeKeyEvent e) {
                System.out.println("Key Released: " + NativeKeyEvent.getKeyText(e.getKeyCode()));
        }

        public void nativeKeyTyped(NativeKeyEvent e) {
                System.out.println("Key Typed: " + e.getKeyText(e.getKeyCode()));
        }

        public static void main(String[] args) {
                try {
                        GlobalScreen.registerNativeHook();
                }
                catch (NativeHookException ex) {
                        System.err.println("There was a problem registering the native hook.");
                        System.err.println(ex.getMessage());

                        System.exit(1);
                }

                //Construct the example object and initialze native hook.
                GlobalScreen.getInstance().addNativeKeyListener(new GlobalKeyListenerExample());
        }
}

1mpuls0

Cita de: TriBlack en 20 Agosto 2013, 16:52 PM
Buenas... este codigo sirve para captar las teclas asi la aplicacion pierda el foco espero te sirva  

Por el código que veo es una librería externa, y al parecer está hecho con JNI.

Bueno mientras funcione está bien xD
abc

TriBlack

Cita de: Darhius en 20 Agosto 2013, 17:01 PM
Por el código que veo es una librería externa, y al parecer está hecho con JNI.

Bueno mientras funcione está bien xD

Jeje si es con la librera JNativeHook 1.1.4 aqui la info https://code.google.com/p/jnativehook/

Creo que eso le servirá ^-^