Search code examples
javaswingjtextfield

Set border to component extends JTextField


I try to create my own YTextField, I extend my class to JTextField and I want to set a new border when FocusListener :

Here is my code :

public class YTextField extends JTextField {

    public YTextField() {
        super();
        super.setFont(new java.awt.Font("SansSerif", 0, 14));
        FocusListener highlighter = new FocusListener() {

            @Override
            public void focusGained(FocusEvent e) {
                //Set my border
                Border border = BorderFactory.createLineBorder(Color.red);
                super.setBorder(UIManager.getBorder(border));
            }

            @Override
            public void focusLost(FocusEvent e) {
                //Set the default border
                super.setBorder(UIManager.getBorder("TextField.border"));

            }
        };
        super.addFocusListener(highlighter);
    }
}

Any idea how to create this component so I can set my border focusGained for example?


Solution

  • You can directly put on focus gained

    setBorder(BorderFactory.createLineBorder(Color.red)); 
    

    and

    setBorder(BorderFactory.createEmptyBorder());
    

    on focus lost

    Good luck