JTextField
小数点のコンマ (ドイツ語キーボード) を特定の s のポイントに再マップしたいと考えています。getInputMap()
とを試してみましgetActionMap
たが、これまでのところ何も機能しませんでした。これまでに得た最良の結果は、カンマがまったく機能しなかったことです。
入力マップを使用する方法があるはずだと思いますが、どのように?
以下は小さなプログラムの例です。コメントの場所に何を記入すればよいか、ヒントを教えていただけませんか? それとも、とにかくこれは完全に間違っていますか?
import javax.swing.InputMap;
import javax.swing.JFrame;
import javax.swing.JTextField;
import javax.swing.KeyStroke;
public class KeyTest extends JFrame {
private JTextField textField;
public KeyTest() {
textField = new JTextField();
add(textField);
InputMap map = textField.getInputMap();
map.put(KeyStroke.getKeyStroke(','), /* what to do here? */);
}
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
KeyTest test = new KeyTest();
test.pack();
test.setVisible(true);
}
});
}
}
編集:
おそらく、私の質問は十分に明確ではありませんでした。通常の数値で問題ありません。日付を入力するときのユーザー入力をより便利にしたいだけです。これらは"DD.MM.YYYY"
ドイツの形式です。つまり、小数点ではなくコンマがあるため、数字キーパッドだけを使用して日付を入力することはできません。そのため、日付の入力に使用するテキスト フィールドのコンマをポイントに置き換えたいと考えています。
プレーンテキストと数値のすべての入力フィールドはすでに正常に機能しており、日付入力も機能しています。入力を簡単にしたいだけです。ちょうど昨日、Libreoffice で同様の機能に気付きました。数値キーパッド (私はドイツ語のキーボードを使用しています) のコンマが数値セル (私のロケールは英語に設定されています) で自動的に置き換えられますが、数値を含むセルでのみ置き換えられます。これは、入力時にも発生します。