我目前正在使用java编写虚拟键盘。如您所知,当用户单击虚拟键盘上的按钮时,文本将出现在其他一些窗口(例如word文档)中。那我怎么能做这个动作呢?或者更清楚一点,当用户点击按钮并让文字出现在word文档中时,如何更改焦点窗口? 谢谢!
答案 0 :(得分:0)
我希望以下示例可以帮助您开发键盘。几点:
1.使用JWindow
而非JFrame
或任何其他框架,以避免您的聚焦问题。
2.使用Robot将按键事件转移到活动光标。
运行以下应用程序,确保光标在textpad上,按下窗口上的A按钮,在光标位置插入字符a:
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);
}
}