我想将十进制逗号(德语键盘)重新映射到某个点JTextField
。我已经尝试过getInputMap()
and 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 中的一个类似功能,其中数字小键盘上的逗号(我有一个德语键盘)在数字单元格(我的语言环境设置为英语)中自动替换,但仅在包含数值的单元格中。这也会在您键入时发生。