こんにちは、キーを押すたびに keyEvent.getKeyCode() を表示する Java プログラムを作成しました。
目的は、Java ロボット クラスといくつかの keyEvent を使用して、ある種のボットが git/skyrim/fraps を駆動できるようにすることでした。
ただし、一部の keyEvent コードが同じであることがわかるため、AZERTY キーボードをマップできないようです。
キーボードを駆動する他の方法はありますか?
疑問に思っている場合のプログラムは次のとおりです。
メインクラス:
package keykeykey;
import java.awt.BorderLayout;
import javax.swing.JFrame;
import javax.swing.JTextField;
public class MainClass {
public static void main(String args[]) throws Exception {
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JTextField nameTextField = new JTextField();
frame.add(nameTextField, BorderLayout.NORTH);
JTextField codeTextField = new JTextField();
frame.add(codeTextField, BorderLayout.SOUTH);
MyKeyListener myKeyListener = new MyKeyListener(codeTextField, nameTextField);
nameTextField.addKeyListener(myKeyListener);
frame.setSize(250, 100);
frame.setVisible(true);
}
}
keyListener の再定義
package keykeykey;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.JTextField;
public class MyKeyListener extends KeyAdapter implements KeyListener {
public JTextField codeTextField;
public JTextField writeTextField;
public MyKeyListener(JTextField codeTextField, JTextField writeTextField) {
this.codeTextField = codeTextField;
this.writeTextField = writeTextField;
}
@Override
public void keyPressed(KeyEvent keyEvent) {
printIt("Pressed", keyEvent);
codeTextField.setText("code = " + keyEvent.getKeyCode());
}
@Override
public void keyReleased(KeyEvent keyEvent) {
codeTextField.setText("");
writeTextField.setText("");
}
@Override
public void keyTyped(KeyEvent keyEvent) {
//do nothing
}
private void printIt(String title, KeyEvent keyEvent) {
int keyCode = keyEvent.getKeyCode();
String keyText = KeyEvent.getKeyText(keyCode);
System.out.println(title + " : " + keyText + " / " + keyEvent.getKeyChar() + " code = " + keyEvent.getKeyCode());
}
}
ありがとう。
Ps : はい、autoHotKey については知っていますが、強く型付けされた言語が必要であり、Java が大好きです。
編集
私は自分自身を正しく表現していなかったに違いありません.shift+VK1が「1」になり、他のキーも同じであることを知っています.
私の問題は、最初の写真でわかるように、一部のキーが認識されないキー イベント (赤いバーのイベント) を生成することです。
たとえば、これらの 2 つのキー: