将数组设置为jtextfield,然后删除



我想获得一个装有数组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.
 }
}

在关键侦听器中,如何添加代码以从字母数组中删除键入字母?

不太好,但是工作

//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) {}
});

我希望您的要求是收听密钥输入事件,然后从字母数组中删除,输入字符。请检查以下代码。

JTextField tf_1 = new JTextField();
String[] alphabet = { "A", "B" };
ArrayList<String> list = new ArrayList<>(Arrays.asList(alphabet));
tf_1.setText(alphabet.toString());
tf_1.addKeyListener(new KeyAdapter()
{
  public void keyTyped(KeyEvent e)
  {
    int id = e.getID();
    String keyString;
    if (id == KeyEvent.KEY_TYPED)
    {
      char c = e.getKeyChar();
      keyString = c+"";
      for (int i = 0; i < alphabet.length; i++)
      {
        if (alphabet[i].equalsIgnoreCase(keyString))
        {
          list.remove(i);
        }
      }
    }
  }
});

相关内容

最新更新