Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mac OS X 10.6更新2(1.6.0_20)Java中JFormattedTextField删除错误的解决方法_Java_Swing_Macos_Jformattedtextfield - Fatal编程技术网

Mac OS X 10.6更新2(1.6.0_20)Java中JFormattedTextField删除错误的解决方法

Mac OS X 10.6更新2(1.6.0_20)Java中JFormattedTextField删除错误的解决方法,java,swing,macos,jformattedtextfield,Java,Swing,Macos,Jformattedtextfield,显然,Mac OS X的最新Java更新中引入了一个bug,它导致JFormattedTextFields中的删除被执行两次。 看 按delete键时,将调用DefaultEditorKit.DeletePrevCharacter两次 有没有关于解决办法的建议 我正在考虑将文本字段的删除操作替换为一个补丁版本,以某种方式过滤掉这些重复调用。我的解决方法似乎很有效: public class PatchedTextField extends JFormattedTextField { p

显然,Mac OS X的最新Java更新中引入了一个bug,它导致JFormattedTextFields中的删除被执行两次。 看

按delete键时,将调用DefaultEditorKit.DeletePrevCharacter两次

有没有关于解决办法的建议


我正在考虑将文本字段的删除操作替换为一个补丁版本,以某种方式过滤掉这些重复调用。

我的解决方法似乎很有效:

public class PatchedTextField extends JFormattedTextField {

    public PatchedTextField() {
        super();

        final Action originalDeleteAction =
            getActionMap().get(DefaultEditorKit.deletePrevCharAction);

        getActionMap().put(DefaultEditorKit.deletePrevCharAction,
            new AbstractAction() {
                ActionEvent previousEvent;

                public void actionPerformed(ActionEvent e) {
                // Filter out events that happen within 1 millisecond from each other
                if (previousEvent == null || e.getWhen() - previousEvent.getWhen() > 1) {
                    originalDeleteAction.actionPerformed(e);
                }
                previousEvent = e;
            }
        });
    }
}

到目前为止,我发现的唯一缺点是每毫秒不能删除超过一个字符。

我想检查操作系统和Java版本是合适的,以避免在不需要的地方添加此项。