gpt4 book ai didi

java - 屏蔽 JTextField 中的一些字符

转载 作者:行者123 更新时间:2023-11-30 10:05:10 29 4
gpt4 key购买 nike

当用户在用户界面上输入时,我需要屏蔽数字,用户应该看到一个屏蔽的数字,但在 Java 代码上,我应该得到整个数字,包括屏蔽的字符用户应该看到什么 4545********9632但在 Java 代码(后面)上,我应该得到包括掩码字符在内的整个数字。我已尝试将 MaskFormatterJFormattedTextField 一起使用,但没有用,它显示了整个数字。

try {
MaskFormatter mask=new MaskFormatter("####********####");
JFormattedTextField js=new JFormattedTextField();
mask.install(js);
} catch (ParseException ex) {
Logger.getLogger(Masker.class.getName()).log(Level.SEVERE, null, ex);
}

最佳答案

这是我的建议,

class ACustomJEditText extends JTextField{
ArrayList<String> realText=new ArrayList<String>();
String displayText="";

public ACustomJEditText() {
// TODO Auto-generated constructor stub
super();
addKeyListener(new KeyAdapter() {
@Override
public void keyReleased(KeyEvent e) {

// DELETE TEXT on backspace
if(e.getKeyCode()==KeyEvent.VK_BACK_SPACE) {
if(realText!=null && realText.isEmpty()==false) {
realText.remove(realText.size()-1);//remove character
}
turnRealTextToString();
//set the display text here
setText(displayText);
return;
}

//avoid any input if string actually string size is greater than 16
if(realText.size()==16) {
setText(displayText);
return;
}

//other keys should now be added to the input for only numbers
try{
int input=Integer.parseInt(e.getKeyChar()+"");
//add int to realtext
realText.add(input+"");
//turn real text to ####********#### string
turnRealTextToString();
setText(displayText);
}catch (Exception ex) {
// Other keys fail.
setText(displayText);
}
}

private void turnRealTextToString() {
String result="";
for(int i=0;i<realText.size();i++) {
if(i>3 && i<12) {
result+="*";
}else {
result+=realText.get(i);
}

}
String realDisplay=realText.toString();
System.out.println("DISPLAY: "+result+" REAL: "+getRealText());

//set result to display text
displayText=result;
setText(displayText);
}
});
}

//get the actual real text
public String getRealText() {
StringBuilder real=new StringBuilder();
realText.forEach(text->{
real.append(text);
});

return real.toString();
}

应该像魔术一样工作。

关于java - 屏蔽 JTextField 中的一些字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55450909/

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