elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
28 Mayo 2012, 02:00  


Tema destacado: Suscripción al boletín mensual de elhacker.net

+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java (Moderadores: Debci, Leyer)
| | | |-+  Evento del JFrame
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Evento del JFrame  (Leído 2,032 veces)
mapers


Desconectado Desconectado

Mensajes: 525


Ver Perfil
Evento del JFrame
« en: 12 Junio 2011, 00:44 »

Buenas señores del Foro desearia que me dieran una manita con esto necesito abrir una ventana con  eventos del teclado por ejemplo.
 abro mi JFrame como ventana ´principal y luego preciono "CTL + 1 " me abra una ventana  luego presiono "CTL + 2 " me abra otra ventana y asi ...........como podria implementar el metodo .................un ejemplo profabor


En línea
Darhius


Desconectado Desconectado

Mensajes: 427


Divide y vencerás.


Ver Perfil
Re: Evento del JFrame
« Respuesta #1 en: 12 Junio 2011, 06:05 »

Lo unico que se me ocurrio fue lo siguiente.

Código
.
.
.
addKeyListener(new java.awt.event.KeyAdapter() {
           public void keyPressed(java.awt.event.KeyEvent evt) {
               formKeyPressed(evt);
           }
       });
.
.
.
 
private void formKeyPressed(java.awt.event.KeyEvent evt) {
       if(evt.isControlDown()){
           if(evt.getKeyCode()==49)
           System.out.println("ctrl+1");
       }
   }
 

Colocas el evento de keypressed al jframe y en tu método primero verificas si la tecla que se oprimio fue ctrl y despues si fue el número 1 (en ascii es el valor 49)

si se cumplen esas dos condiciones entonces realizas la llamada a tu ventana.

El problema es que cuando tengas mas componentes sobre el jframe donde tengas el evento no te va a funcionar.

Tal vez no sea la forma correcta, pero es una posible solucion.

Saludos.


En línea

"Cuenta mi historia... a quienes pregunten, cuéntala con verdad, las cosas malas junto con las buenas  y permite que sea juzgado apegado ellas... el resto... es silencio." Dinobot (Beast Wars Transformers)
mapers


Desconectado Desconectado

Mensajes: 525


Ver Perfil
Re: Evento del JFrame
« Respuesta #2 en: 12 Junio 2011, 06:47 »

groso men  funciona pero hay algo que no manyo bien esa parte del codigo la sacastes con el editor del netbeans, pero que pasa si quiero implementarlo a mano que iria en components para que escuche los eventos del teclado esto :
Código
  this.addKeyListener(this);
 
eso iria o cual ?????
En línea
Darhius


Desconectado Desconectado

Mensajes: 427


Divide y vencerás.


Ver Perfil
Re: Evento del JFrame
« Respuesta #3 en: 12 Junio 2011, 07:14 »

 :¬¬

Código
import javax.swing.JFrame;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.FlowLayout;
import java.awt.event.ActionListener;
import java.awt.Dimension;
import java.awt.event.KeyListener;
import javax.swing.WindowConstants;
 
public class EventosJFrame extends JFrame implements KeyListener {
 
public static void main(String args[]) {
       new EventosJFrame().setVisible(true);
   }
 
   public EventosJFrame() {
       iniciarInterfaz();
   }                
 
   private void iniciarInterfaz() {
 
       setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
       setMinimumSize(new Dimension(100, 100));
       addKeyListener(this);
       getContentPane().setLayout(new FlowLayout());
 
       pack();
   }
 
   public void keyPressed(KeyEvent evt){
if(evt.isControlDown()){
           if(evt.getKeyCode()==49)
           System.out.println("ctrl+1");
       }
}
 
public void keyReleased(KeyEvent evt){
}
 
public void keyTyped(KeyEvent evt){
}        
}
 
En línea

"Cuenta mi historia... a quienes pregunten, cuéntala con verdad, las cosas malas junto con las buenas  y permite que sea juzgado apegado ellas... el resto... es silencio." Dinobot (Beast Wars Transformers)
mapers


Desconectado Desconectado

Mensajes: 525


Ver Perfil
Re: Evento del JFrame
« Respuesta #4 en: 12 Junio 2011, 10:19 »

esto iria :D   en el constructor
Código
 addKeyListener(new java.awt.event.KeyAdapter() {
 
           public void keyPressed(java.awt.event.KeyEvent evt) {
               eventos_teclado(evt);
           }
       });
 

el resto lo implemenaria dependiendo que evento deseo que ocurra ahora mi  duda es la siguiente porque en algunos casos no ocurre el evento solo cuando la ventana esta sin componentes ocurres esos eventos pero cuando esta con componentes como Jtextfield o combobox ya no ocurre nada de los eventos que uno les implemnta a que se deve o hay algun metodo que me falte llamar
En línea
mapers


Desconectado Desconectado

Mensajes: 525


Ver Perfil
Re: Evento del JFrame
« Respuesta #5 en: 12 Junio 2011, 10:27 »

encontre esto en google
Código
Usted tendría que agregar la clave de la escucha exactamente el componente que tiene el foco (muchos componentes son en realidad compuestos).
 

como haria para colocar el componente foco al JFrame para que escuche el evento
En línea
Darhius


Desconectado Desconectado

Mensajes: 427


Divide y vencerás.


Ver Perfil
Re: Evento del JFrame
« Respuesta #6 en: 12 Junio 2011, 16:27 »

cuando esta con componentes como Jtextfield o combobox ya no ocurre nada de los eventos que uno les implemnta a que se deve o hay algun metodo que me falte llamar

Creo que que ya lo habia mencionado antes.

El problema es que cuando tengas mas componentes sobre el jframe donde tengas el evento no te va a funcionar.


Utiliza requestFocus

Código
addWindowListener( new WindowAdapter() {
   public void windowOpened( WindowEvent e ){
    requestFocus();
     }
   } );
 


Saludos.
En línea

"Cuenta mi historia... a quienes pregunten, cuéntala con verdad, las cosas malas junto con las buenas  y permite que sea juzgado apegado ellas... el resto... es silencio." Dinobot (Beast Wars Transformers)
mapers


Desconectado Desconectado

Mensajes: 525


Ver Perfil
Re: Evento del JFrame
« Respuesta #7 en: 12 Junio 2011, 17:41 »

todo me funciona ok gracias por el requestFocus pero desearia que ocurriera todos los eventos cuando presiono Escape mira
Código
 private void formKeyPressed(java.awt.event.KeyEvent evt) {                                
 
       switch(evt.getKeyCode()){
           case KeyEvent.VK_ESCAPE :
               System.out.println("mapers ");
              this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
               break;
 
 
       }
       // TODO add your handling code here:
   }                              
 
 


me  imprime en pantalla pero no ejecuta la linea para cerrar la ventana :D a que se deve esto
« Última modificación: 12 Junio 2011, 17:55 por mapers » En línea
Darhius


Desconectado Desconectado

Mensajes: 427


Divide y vencerás.


Ver Perfil
Re: Evento del JFrame
« Respuesta #8 en: 12 Junio 2011, 18:33 »

Intenta con
Código
System.exit(0);

Código
 private void formKeyPressed(java.awt.event.KeyEvent evt) {                                
 
       switch(evt.getKeyCode()){
           case KeyEvent.VK_ESCAPE :
               System.out.println("mapers ");
              System.exit(0);
               break;
 
 
       }
       // TODO add your handling code here:
   }                              
 
 

Código
this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
Es una propiedad del jframe que se supone ya debiaste haber definido desde antes.

Saludos.
En línea

"Cuenta mi historia... a quienes pregunten, cuéntala con verdad, las cosas malas junto con las buenas  y permite que sea juzgado apegado ellas... el resto... es silencio." Dinobot (Beast Wars Transformers)
mapers


Desconectado Desconectado

Mensajes: 525


Ver Perfil
Re: Evento del JFrame
« Respuesta #9 en: 12 Junio 2011, 19:15 »

ese si funciona men pero solo deseo que se me cierre la ventana que tengo presente y no todas las ventanas :D por eso uso
Código
this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
 

pero al parecer no funciona pero si funciona
Código
 System.exit(0);
 

no existira otro metodo parecido al primero en el que solo pueda cerrar la ventan del evento y que no s em cierre toda mi aplicacion ........................
En línea
Darhius


Desconectado Desconectado

Mensajes: 427


Divide y vencerás.


Ver Perfil
Re: Evento del JFrame
« Respuesta #10 en: 12 Junio 2011, 19:49 »

No entendí con eso de "al parecer no funciona pero si funciona"  :xD
Intenta con estos métodos.

Código
dispose();
Código
setVisible(false);

Saludos
En línea

"Cuenta mi historia... a quienes pregunten, cuéntala con verdad, las cosas malas junto con las buenas  y permite que sea juzgado apegado ellas... el resto... es silencio." Dinobot (Beast Wars Transformers)
mapers


Desconectado Desconectado

Mensajes: 525


Ver Perfil
Re: Evento del JFrame
« Respuesta #11 en: 13 Junio 2011, 05:07 »

me refiero a que funciona el
Código
System.exit(0);
 

pero no el
Código
this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
 

solo deseo cerrar le ventana del evento no todas :S

pero ya me salio con el dispose()

gracias ..............
En línea
Darhius


Desconectado Desconectado

Mensajes: 427


Divide y vencerás.


Ver Perfil
Re: Evento del JFrame
« Respuesta #12 en: 13 Junio 2011, 05:10 »

Intenta con estos métodos.

Código
dispose();
Código
setVisible(false);
En línea

"Cuenta mi historia... a quienes pregunten, cuéntala con verdad, las cosas malas junto con las buenas  y permite que sea juzgado apegado ellas... el resto... es silencio." Dinobot (Beast Wars Transformers)
mapers


Desconectado Desconectado

Mensajes: 525


Ver Perfil
Re: Evento del JFrame
« Respuesta #13 en: 13 Junio 2011, 09:03 »

ahora mi duda es la siguiente :S mira en mi ventana hay botones y hasta un JunternalJFrame y  JTextfiel lo que pasa es que despues de usar  los ocmponenetes de mi interfaz y quiero cerrar mi ventana simplemente ya no detecta el teclado o esque se cambio de focus si es asi como puedo regresarlo........los botones de control los tiene el JInternalFrame ..............gracias por todo .........

si me  funciona tu metodo siempore y cuando no haga nada en la ventana ....................................
o debo colocar el

Código
addWindowListener( new WindowAdapter() {
   public void windowOpened( WindowEvent e ){
    requestFocus();
     }
   } );
 

por cada evento que hago para que refresque mi focus
« Última modificación: 13 Junio 2011, 09:22 por mapers » En línea
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Duda: como mostrar un JFrame de otro JFrame.
Programación General
dragon_abraxas 0 1,042 Último mensaje 22 Octubre 2004, 12:10
por dragon_abraxas
Ayuda con 2 JFrame plz
Java
visualfree 3 2,616 Último mensaje 24 Abril 2009, 05:03
por visualfree
JFrame MDI
Java
[GB] 0 1,449 Último mensaje 23 Noviembre 2009, 23:34
por [GB]
JFrame
Java
nerckos 10 2,314 Último mensaje 8 Mayo 2010, 15:58
por nerckos
Llamar un Jframe
Java
blood_brother 8 2,674 Último mensaje 9 Junio 2010, 08:29
por blood_brother
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines