将数组设置为JTextField然后删除

时间:2018-04-23 11:31:37

标签: java arrays jframe keylistener settext

我想要一个充满数组A-Z的JTextField。然后当用户按下例如键盘上的P,该字母将从JTextField中删除。

到目前为止,我所拥有的只是以下内容,我知道它无处接近所以道歉(而且我知道它不会起作用)。

tf_1 = new JTextField();
String[] alphabet = {"A", "B" //etc};
tf_1.setText(alphabet);
tf_1.addKeyListener(new KeyAdapter() {
 public void keyTyped(KeyEvent e) {
  // Remove letter if typed.
 }
}

在密钥监听器中,如何添加代码以从字母数组中删除键入的字母?

2 个答案:

答案 0 :(得分:0)

不太好,但有效

//Frame maninFr = new Frame();
JTextField tf_1 = new JTextField();
//maninFr.add(tf_1);
//maninFr.show();

String[] alphabet = {"A","B"};
tf_1.setText(Arrays.toString(alphabet));
tf_1.addKeyListener(new KeyListener() {

 @Override
 public void keyTyped(KeyEvent e) {}

 @Override
 public void keyReleased(KeyEvent e) {
  String input = tf_1.getText();
  char pressed = e.getKeyChar();
  String newInput = input.replaceAll(Character.toString(pressed), "");
  System.out.println("pressed: " + pressed);
  System.out.println("newin : " + newInput);
  tf_1.setText(newInput);
 }

 @Override
 public void keyPressed(KeyEvent e) {}
});

答案 1 :(得分:0)

我希望你的要求是听取键输入事件并从字母数组中删除,输入字符。请检查以下代码。

:next