2011-12-11 22 views
5

Estoy implementando algunos códigos de teclado para una aplicación java swing existente, pero parece que no puedo presionar el teclado para ejecutar la acción "mousePressed" y la acción "mouseReleased" que están mapeadas a un JButton. No tengo problemas para hacer clic en "action_performed" con button.doClick(), ¿hay alguna función similar para simular las pulsaciones del mouse? Gracias de antemano.¿Cómo se simula un clic completo con Java Swing?

+0

cheque esta http://stackoverflow.com/questions/2445105/how-do-you-simulate-a-click-on-a-jtextfield -equivalente-de-jbutton-doclick – doNotCheckMyBlog

Respuesta

6

Puede simular se presione el ratón y las acciones del ratón utilizando la clase Robot. Está hecho para la simulación por ej. para probar automáticamente las interfaces de usuario.

Pero si quiere compartir "acciones", p. botones y presionar teclas, debe usar un Action. Ver How to Use Actions.

Ejemplo sobre cómo compartir una acción para un botón y una pulsación de tecla:

Action myAction = new AbstractAction("Some action") { 

    @Override 
    public void actionPerformed(ActionEvent e) { 
     // do something 
    } 
}; 

// use the action on a button 
JButton myButton = new JButton(myAction); 

// use the same action for a keypress 
myComponent.getInputMap().put(KeyStroke.getKeyStroke("F2"), "doSomething"); 
myComponent.getActionMap().put("doSomething", myAction);  

Más información acerca de atajos de teclado en How to Use Key Bindings.

2

Se podría añadir un oyente a su botón:

import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 
import javax.swing.JButton; 
import javax.swing.JFrame; 

public class ButtonAction { 

private static void createAndShowGUI() { 

    JFrame frame1 = new JFrame("JAVA"); 
    frame1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

    JButton button = new JButton(" >> JavaProgrammingForums.com <<"); 
    //Add action listener to button 
    button.addActionListener(new ActionListener() { 

    public void actionPerformed(ActionEvent e) 
    { 
     //Execute when button is pressed 
     System.out.println("You clicked the button"); 
     } 
    });  

    frame1.getContentPane().add(button); 
    frame1.pack(); 
    frame1.setVisible(true); 
} 


public static void main(String[] args) { 
    javax.swing.SwingUtilities.invokeLater(new Runnable() { 
      public void run() { 
       createAndShowGUI(); 
      } 
     }); 
    } 
}` 
Cuestiones relacionadas