2016-12-02 29 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());'在焦点丢失 –

+0

它的工作,这是惊人的非常感谢你@BOUALIALI这真的帮助我 –

+0

我会张贴它作为一个答案,你可以检查它作为一个解决方案,所以其他人可以直接了解他们是否有同样的问题 –

回答

2

您可以直接把焦点上涨

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

setBorder(BorderFactory.createEmptyBorder()); 

焦点失去

好运