2016-12-02 72 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()); 

焦點失去

好運