gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 08:32:25 25 4
gpt4 key购买 nike

Mac OS X 的最新 Java 更新中显然引入了一个错误,导致 JFormattedTextFields 中的删除操作执行两次。请参阅http://lists.apple.com/archives/java-dev/2010/May/msg00092.html

按下删除键时,DefaultEditorKit.deletePrevCharAction 会被调用两次。

有解决方法的建议吗?

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

最佳答案

我的解决方法,似乎效果很好:

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 - Mac OS X 10.6 Update 2 (1.6.0_20) Java 中 JFormattedTextField 删除错误的解决方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2964229/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com