まず第一に、これはキーロガー用ではなく、ローグライク ゲームでの入力用であり、JLabel
" JFrame
Name: " と入力し、A-Za-z を入力できるようにしたいと考えています。キー入力の多くのオプションを見た後、KeyStroke
s とAction
s を使い始めたところに戻りました。
私が疑問に思っているのは、これを 56 回繰り返すのではなく、キーの範囲を追加する方法があるかどうかです。
Action a = new AbstractAction() {
public void actionPerformed(ActionEvent e) {
// add a to string
}
};
getInputMap().put(KeyStroke.getKeyStroke("a"), "a");
getActionMap().put("a", a);
つまり、この方法で、コピーと貼り付けを少し書くだけでそれを行うことができますが、私はそれが本当に嫌いです。使用するよりも洗練された解決策が必要です。KeyListener
これは、どうにかしてフォーカスを合わせる必要があることを意味しますが、ウィンドウは単純JFrame
に大きなJLabel
ものです。
また、私はJavaを数日しかやっていないので、おそらく非常に一般的に知られている解決策を見逃しているのですが、もしあれば共有してください! 感謝。