2011-12-11 8 views
5

मैं मौजूदा जावा स्विंग एप्लिकेशन के लिए कुछ कीबोर्ड कोड लागू कर रहा हूं, लेकिन मुझे "माउस दबाए गए" क्रिया को निष्पादित करने के लिए कीबोर्ड दबाया नहीं जा सकता है और "माउस रीलेज्ड" एक्शन जो जेबटन में मैप किए गए हैं। मुझे बटन के साथ "action_performed" के लिए इसे क्लिक करने में कोई समस्या नहीं है .doClick(), माउस प्रेस को अनुकरण करने के लिए एक समान कार्य है? धन्यवाद पहले से ही।आप जावा स्विंग के साथ पूर्ण क्लिक कैसे अनुकरण करते हैं?

+0

जांच इस http://stackoverflow.com/questions/2445105/how-do-you-simulate-a-click-on-a-jtextfield -equivalent के- jbutton-doclick – doNotCheckMyBlog

उत्तर

6

आप माउस प्रेस और माउस के कार्यों की नकल कर सकते हैं Robot वर्ग का उपयोग करके। यह सिमुलेशन के लिए बनाया गया है उदा। स्वचालित रूप से उपयोगकर्ता इंटरफेस का परीक्षण करने के लिए।

लेकिन यदि आप उदाहरण के लिए "क्रियाएं" साझा करना चाहते हैं बटन और कीप्रेस, आपको Action का उपयोग करना चाहिए। How to Use Actions देखें। कैसे एक बटन और एक कुंजी-स्पर्श के लिए एक कार्य साझा करने के लिए पर

उदाहरण:

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

How to Use Key Bindings पर की-बाइंडिंग के बारे में अधिक पढ़ें।

2

आप अपने बटन के लिए एक श्रोता जोड़ सकते हैं:

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(); 
      } 
     }); 
    } 
}` 
संबंधित मुद्दे