Java 空jtextfield/jpassword删除声音

Java 空jtextfield/jpassword删除声音,java,swing,jtextfield,jpasswordfield,Java,Swing,Jtextfield,Jpasswordfield,嗯,我正在做一个java项目,需要用户的输入。我意识到,如果用户在字段中没有字符时按backspace,就会听到窗口警告声。我怎样才能阻止这一切。我的系统是windows 10,如果在不同的平台上行为可能不同的话。多谢各位 不同平台上的行为可能不同 是的,行为可以不同,因为它是由LAF控制的,所以你不应该真的改变它 但要了解Swing的工作原理,您需要了解Swing使用由DefaultEditorKit提供的操作来提供文本组件的编辑功能 以下是当前“删除上一个字符”操作的代码(取自Default

嗯,我正在做一个java项目,需要用户的输入。我意识到,如果用户在字段中没有字符时按backspace,就会听到窗口警告声。我怎样才能阻止这一切。我的系统是windows 10,如果在不同的平台上行为可能不同的话。多谢各位

不同平台上的行为可能不同

是的,行为可以不同,因为它是由LAF控制的,所以你不应该真的改变它

但要了解Swing的工作原理,您需要了解Swing使用由
DefaultEditorKit
提供的
操作来提供文本组件的编辑功能

以下是当前“删除上一个字符”操作的代码(取自
DefaultEditKit
):

或者,您可以使用以下命令更改所有文本字段:

ActionMap am = (ActionMap)UIManager.get("TextField.actionMap");
am.put(DefaultEditorKit.deletePrevCharAction, new MyDeletePrevCharAction());

谢谢这给了我足够的提示来解决这个问题。非常感谢。在回答你的问题时,一定要接受它。访问以了解更多信息,并确保接受答案。谢谢
textField.getActionMap().put(DefaultEditorKit.deletePrevCharAction, new MyDeletePrevCharAction());
ActionMap am = (ActionMap)UIManager.get("TextField.actionMap");
am.put(DefaultEditorKit.deletePrevCharAction, new MyDeletePrevCharAction());