0
我目前正在使用java編程虛擬鍵盤。如你所知,當用戶點擊我的虛擬鍵盤上的按鈕時,文本將出現在其他一些窗口中(比如一個word文檔)。那麼我該如何做這個動作呢?或者要更清楚,當用戶單擊按鈕並讓文本出現在單詞文檔中時如何更改窗口焦點? 謝謝!使用java更改專注窗口
我目前正在使用java編程虛擬鍵盤。如你所知,當用戶點擊我的虛擬鍵盤上的按鈕時,文本將出現在其他一些窗口中(比如一個word文檔)。那麼我該如何做這個動作呢?或者要更清楚,當用戶單擊按鈕並讓文本出現在單詞文檔中時如何更改窗口焦點? 謝謝!使用java更改專注窗口
我希望下面的例子會幫助你開發鍵盤。幾點: 1.使用JWindow
而不是JFrame
或任何其他框架,以避免您的焦點問題。 2.使用機器人將按鍵事件轉移到活動光標。
運行下面的應用程序,並確保你的光標在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);
}
}