我注意到我无法剪切和复制JPasswordField
吗?现在如何将密码的选定部分复制/剪切到剪贴板?有什么方法可以做到这一点?
最佳答案
简单,使用这种方法
JPasswordField jt=new JPasswordField(20);
// Put client property
jt.putClientProperty("JPasswordField.cutCopyAllowed",true);
add(jt);
默认情况下,不允许剪切/复制
JPasswordField
中的密码。您需要做的就是启用它们。根据对禁用粘贴的评论,我没有找到属性,但是我已经实现了使用它,(我不推荐这种方式)
jt.getActionMap().put("a",null);
jt.getInputMap(JComponent.WHEN_FOCUSED).put(KeyStroke.getKeyStroke("ctrl V"),"a");
另一种方法是在声明时覆盖
paste()
(我建议采用这种方式)JPasswordField jt=new JPasswordField(20){
public void paste(){}
};
更新:我误解了此评论。但是上面确实禁用粘贴。但是,要禁用复制/剪切/粘贴中的任何一个,最好是将要禁用的必需方法在没有实现的情况下被覆盖。
如果有更好的方法,我很想听听。