2011-12-11 34 views
5

Tôi đang triển khai một số mã bàn phím cho ứng dụng java swing hiện có, nhưng tôi dường như không thể nhấn phím để thực hiện hành động "mousePressed" và hành động "mouseReleased" được ánh xạ tới JButton. Tôi không có vấn đề gì khi nhấp vào nó cho "action_performed" với button.doClick(), có chức năng tương tự để mô phỏng các lần nhấn chuột không? Cảm ơn trước.Làm thế nào để bạn mô phỏng một cú nhấp chuột đầy đủ với Java Swing?

+0

việc kiểm tra này http://stackoverflow.com/questions/2445105/how-do-you-simulate-a-click-on-a-jtextfield -equivalent-of-jbutton-doclick – doNotCheckMyBlog

Trả lời

6

Bạn có thể mô phỏng ép chuột và hành động chuột bằng cách sử dụng các lớp Robot. Nó được tạo cho mô phỏng ví dụ: để tự động kiểm tra giao diện người dùng.

Nhưng nếu bạn muốn chia sẻ "hành động" cho ví dụ: các nút và nhấn phím, bạn nên sử dụng Action. Xem How to Use Actions.

Ví dụ về cách chia sẻ một hành động cho một Button và một khi nhấn phím:

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);  

Đọc thêm về Khóa-bindings trên How to Use Key Bindings.

2

Bạn có thể thêm một người biết lắng nghe để nút của bạ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(); 
      } 
     }); 
    } 
}` 
Các vấn đề liên quan