1

CTRL+を押すAと、すべてのテキストフィールドが選択されます。このようにしてみましたが、フォーカスのあるテキストフィールドだけが選択されます。

助けてくれませんか?

class Main{

public JTextField[] textFields;

private TextFieldSelected(int byteCount) {

    textFields = new JTextField[byteCount];
    for (int i = 0; i < textFields.length; i++) {
        textFields[i] = new JTextField(3);

    }

private class CtrlAAdapter extends KeyAdapter {

    public void keyPressed(KeyEvent e) {
        //JTextField textField = (JTextField) e.getComponent();

        if(KeyEvent.VK_CONTROL == e.getKeyCode() && e.getModifiers() == 0)
            if(KeyEvent.VK_A == e.getKeyCode() && e.getModifiers() ==0)

                new SelectAllListener();}}


            //  for(int i=0; i < textFields.length; i++) textFields[i].selectAll();

         class SelectAllListener implements ActionListener {  

             public void actionPerformed(ActionEvent ev) {  
                 for(int i=0; i < textFields.length; i++){
                     //JTextField field = textFields[i];
                    // String text=textFields[i].getText();
                    // textArea.append(text);
                     textFields[i].selectAll();  
                 }



         }
//      reset();
        //  e.consume();
         }

}

変更しましたが、まだ機能しません:

for (int i = 0; i < textFields.length; i++) {
         JTextField textField = textFields[i];
        textField.getDocument().addDocumentListener(documentListener);
        KeyBindings keybindings = new KeyBindings(textField);


    } 

クラスキーバインディング{

    public KeyBindings(JTextField textField){
        Action action = new AbstractAction() {
            @Override
            public void actionPerformed(ActionEvent e) {

                for(int i=0;i < textFields.length; i++){
                    JTextField textField = textFields[i];


                    for(int j=0;j < textFields.length; j++){

                            textFields[j].selectAll();
                            textFields[j].transferFocus();
                            }
                }
            }
        };

        String keyStrokeAndKey = "control A";
        KeyStroke keyStroke = KeyStroke.getKeyStroke(keyStrokeAndKey);
        textField.getInputMap().put(keyStroke, keyStrokeAndKey);
        textField.getActionMap().put(keyStrokeAndKey, action);

    }
}

また、フォーカスされていないフィールドにも選択を表示するにはどうすればよいですか?

4

1 に答える 1