2016-08-04 21 views
0

Ich programmiere gerade eine virtuelle Tastatur mit Java. Wie Sie wissen, wenn der Benutzer auf die Schaltflächen auf meiner virtuellen Tastatur klickt, wird der Text in einigen anderen Fenstern angezeigt (sagen wir ein Word-Dokument). Wie kann ich diese Aktion machen? Oder um klarer zu werden, wie man das Scharfeinstellfenster ändert, wenn der Benutzer auf die Schaltfläche klickt und den Text im Word-Dokument anzeigt? Danke!Ändern des fokussierten Fensters mit Java

Antwort

0

Ich hoffe, unten Beispiel wird Ihnen helfen, Tastatur zu entwickeln. Wenige Punkte: 1. Verwendet JWindow anstatt JFrame oder einen anderen Rahmen, um Ihre Fokussierung zu vermeiden. 2. Benutzter Roboter, um das Tastendruck-Ereignis zum aktiven Cursor zu übertragen.

Run unter Anwendung, und stellen Sie sicher, dass Sie den Cursor auf textpad ist, drücken Sie eine Taste auf Fenster, Zeichen a wird an der Cursorposition eingefügt:

import java.awt.AWTException; 
import java.awt.Color; 
import java.awt.Dimension; 
import java.awt.FlowLayout; 
import java.awt.Robot; 
import java.awt.event.KeyEvent; 
import java.awt.event.MouseAdapter; 
import java.awt.event.MouseEvent; 

import javax.swing.JButton; 
import javax.swing.JWindow; 

public class Runningwindow extends JWindow 
{ 
    public static void main(String[] args) throws AWTException 
    { 
    Runningwindow window = new Runningwindow(); 
    window.setBackground(Color.RED); 
    window.setPreferredSize(new Dimension(200, 200)); 
    window.setLayout(new FlowLayout()); 
    JButton button = new JButton("A"); 
    Robot r = new Robot(); 
    int keyCode = KeyEvent.VK_A; // the A key 
    button.addMouseListener(new MouseAdapter() { 

     public void mouseReleased(MouseEvent e) 
     { 
     r.keyRelease(keyCode); 
     } 

     public void mousePressed(MouseEvent e) 
     { 
     r.keyPress(keyCode); 
     } 
    }); 
    window.add(button); 
    window.pack(); 
    window.setVisible(true); 
    } 
}