我有一个要求,需要在运行时进入 jtextArea 将所有文本替换为“”(基本上是屏蔽)。意思是说我将 key 存储到 textArea 的变量中,将其显示为“”。 得到的代码如下:
public class App {
String text= "";
App(){
JFrame f= new JFrame();
// final JTextArea area=new JTextArea();
JTextArea jTextArea=new JTextArea();
jTextArea.addKeyListener(new KeyListener() {
public void keyTyped(KeyEvent e) {
}
public void keyPressed(KeyEvent e) {
}
public void keyReleased(KeyEvent e) {
if(Character.isLetter(e.getKeyChar())) {
System.out.println(text);
//text = text + e.getKeyChar();
text += String.valueOf(e.getKeyChar());
System.out.println(text);
jTextArea.setText(text.replaceAll("[a-z]", "*"));
}
//System.out.println(text);
}
});
System.out.println(text);
jTextArea.setBounds(10,30, 200,200);
jTextArea.setAutoscrolls(true);
f.add(jTextArea);
f.setSize(300,300);
f.setLayout(null);
f.setVisible(true);
}
public static void main(String args[])
{
new App();
}
}
这里的问题是它也转换我的“新行”并将其添加到第一行本身。
我的要求是:
输入:
Hello
how
are
you
应显示为:
*****
***
***
***
请多多指教
最佳答案
检查下面的代码是否是您正在寻找的内容
import javax.swing.*;
import java.awt.*;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
public class App {
String text= "";
App(){
JFrame f= new JFrame();
// final JTextArea area=new JTextArea();
JTextArea jTextArea=new JTextArea();
jTextArea.addKeyListener(new KeyListener() {
public void keyTyped(KeyEvent e) {
}
public void keyPressed(KeyEvent e) {
}
public void keyReleased(KeyEvent e) {
text += String.valueOf(e.getKeyChar());
System.out.println(text);
jTextArea.setText(text.replaceAll("[a-z]", "*"));
}
});
System.out.println(text);
jTextArea.setBounds(10,30, 200,200);
jTextArea.setAutoscrolls(true);
f.add(jTextArea);
f.setSize(300,300);
f.setLayout(null);
f.setVisible(true);
}
public static void main(String args[])
{
new App();
}
}
关于java - 如何通过跳过换行符将文本区域内容替换为 "*",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59099712/