Search code examples
javaswingjtextfieldcardlayout

Get focus on a JTextField inside a CardLayout


I have a JTextField inside a JPanel A which is a part of CardLayout. When this A gets shown, I want to set the focus automatically to the JTextField (i.e. the cursor is flashing in the text field so the user doesn't need to click on it to enable the input). I tried calling requestFocusInWindow() on the JTextField object at initialization, but that doesn't seem to work. Do I need to call this method every time when A gets displayed? Thanks.


Solution

  • Maybe you can try requestFocusInWindow() when the panel is shown ?

    something like this?

        jPanel.addComponentListener(new ComponentAdapter() {
            @Override 
            public void componentShown(java.awt.event.ComponentEvent e) 
            {
                jTextField.requestFocusInWindow();
            }
        });