2016-08-04 8 views
0

В настоящее время я программирую виртуальную клавиатуру с помощью java. Как вы знаете, когда пользователь нажимает кнопки на моей виртуальной клавиатуре, текст появляется в некоторых других окнах (например, в текстовом документе). Итак, как я могу это сделать? или быть более четким, как изменить окно-в-фокусе, когда пользователь нажимает кнопку и позволяет тексту появляться в документе слова? Спасибо!Изменение сфокусированного окна с помощью java

ответ

0

Надеюсь, что ниже пример поможет вам развить клавиатуру. Несколько пунктов: 1. Используется JWindow, а не JFrame или любой другой фрейм, чтобы избежать проблем с фокусировкой. 2. Используется робот для передачи события нажатия клавиши на активный курсор.

Run ниже приложения, и убедитесь, что курсор находится на TextPad, нажмите кнопку на окне, характер а вставляется в позиции курсора:

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