Search code examples
javaarraysjframekeylistenersettext

Setting array to JTextField then removing


I am wanting to get a JTextField filled with an array A-Z. Then when a user pressed e.g. P on the keyboard, that letter will be removed from the JTextField.

So far all I have is the following, I know it's nowhere close so apologies (And I know it wont work).

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.
 }
}

Inside the key listener, how can I add code to remove the typed letter from the alphabet array?


Solution

  • Not so fine, but works

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