2016-12-02 12 views
0

Я пытаюсь создать свой собственный YTextField, я протягиваю класс JTextField и я хочу, чтобы установить новую границу, когда FocusListener:Установить границы для компонента расширяет JTextField

Вот мой код:

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

Любая идея, как создать этот компонент, чтобы я мог установить мою границу focusGained например?

спасибо.

+1

Вы можете сразу положить на фокус gained'setBorder (BorderFactory. createLineBorder (Color.red)); ' и' .setBorder (BorderFactory.createEmptyBorder()); 'on focus lost –

+0

Это работает, это потрясающе спасибо вам огромное @BOUALIALI, это действительно помогло мне –

+0

Я отправлю его в качестве ответа, и вы можете проверить его как решение, чтобы другие могли прямо выясните, есть ли у них такая же проблема –

ответ

2

Вы можете сразу поставить на фокус получил

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

и

setBorder(BorderFactory.createEmptyBorder()); 

на фокус потерял

удачи