Seguidores

MIS WEBS



viernes, 16 de marzo de 2018

CONTROLES DE TECLADO


 


Los controles de teclado (Ctrl+c,ctrl+x,Alt+c…)los podíamos hacer directamente, para ello teníamos que utilizar la interface KeyListener e implementar todos sus mentodos o utilizando la clase KeyAdapter e implementando el método necesario:



class EscuchaTeclado implements KeyListener{//oyente
        public void keyPressed(KeyEvent e) {
                int codice=e.getKeyChar();
                System.out.print(e);
        }
        public void keyReleased(KeyEvent e) {  }
        public void keyTyped(KeyEvent e) {}
}



Y luego llamarla desde el constructor del frame:


class Marco_1000 extends JFrame{
         public Marco_1000() {
         EscuchaTeclado tecla = new EscuchaTeclado();
         addKeyListener(tecla);
         ModificaEstados cambio = new ModificaEstados();
         Lamina1000 l1 = new Lamina1000();
         add(l1);
         addWindowStateListener(cambio);
        
         setVisible(true); 
         }
}



 En nuestro caso ya tenemos la acción implementada en addActionListener


segundo.addActionListener(new ActionListener() {
                     public void actionPerformed(ActionEvent e) {
                                       if (segundo.getState()) {
                                               BarraMenu.setVisible(false);
                                       segundo.setText("MOSTRAR MENU PRINCIPAL");
                                       }else {
                                               BarraMenu.setVisible(true);
                                       }
                               }
                        });
                   

Tenemos un atajo que nos presta java, utilizar el método setacelaratorkit y pasarle por parámetros nuestro KeyEvent


segundo.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_2,InputEvent.CTRL_DOWN_MASK));

 KeyEvent sera la letra(a,b,c,f,r,1,2,8....)
 InputEvent sera la letra de control(Ctrl,Alt, tabulador...)



En el siguiente ejemplo conseguiriamos que:
·         Pulsando Ctrl+1 desaparezca el primer menú
·         Pulsando Ctrl+2 desaparezca el segundo menú
·         Pulsando Ctrl+3 desaparezca el tercer menú




Primero.addActionListener(new ActionListener() {
                                      public void actionPerformed(ActionEvent e) {
                                               if (Primero.getState()) {
                                               Contador.setVisible(false);
                                               Primero.setText("MOSTRAR MENU CONTADOR");
                                               }else {
                                                        Contador.setVisible(true);
                                               }
                                      }
                            });
                            segundo.addActionListener(new ActionListener() {
                                      public void actionPerformed(ActionEvent e) {
                                               if (segundo.getState()) {
                                                        BarraMenu.setVisible(false);
                                               segundo.setText("MOSTRAR MENU PRINCIPAL");
                                               }else {
                                                        BarraMenu.setVisible(true);
                                               }
                                      }       
                            });
                            tercero.addActionListener(new ActionListener() {
                                      public void actionPerformed(ActionEvent e) {
                                               if (tercero.getState()) {
                                                        COMBO.setVisible(false);
                                               tercero.setText("MOSTRAR MENU TIPO LETRA");
                                               }else {
                                                        COMBO.setVisible(true);
                                               }
                                      }
                            });
                           
                            Primero.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_1,InputEvent.CTRL_DOWN_MASK));
                            segundo.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_2,InputEvent.CTRL_DOWN_MASK));
                            tercero.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_3,InputEvent.CTRL_DOWN_MASK));
                   

No hay comentarios:

Publicar un comentario

Buscar este blog

Sandisk y Western Digital