使用java更改焦点窗口
Posted
技术标签:
【中文标题】使用java更改焦点窗口【英文标题】:Changing focused window using java 【发布时间】:2016-08-04 09:46:04 【问题描述】:我目前正在使用 java 编写虚拟键盘。如您所知,当用户单击我的虚拟键盘上的按钮时,文本将出现在其他一些窗口中(比如 word 文档)。那么我该如何做这个动作呢?或者更清楚一点,当用户单击按钮并让文本出现在 word 文档中时,如何更改焦点窗口? 谢谢!
【问题讨论】:
【参考方案1】:我希望下面的例子能帮助你开发键盘。几点:
1. 使用JWindow
而不是JFrame
或任何其他框架,以避免您的对焦问题。
2. 使用Robot将按键事件传递给活动光标。
运行下面的应用程序,并确保您的光标在文本板上,按窗口上的 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);
【讨论】:
以上是关于使用java更改焦点窗口的主要内容,如果未能解决你的问题,请参考以下文章