Componentes Swing personalizados

Boa tarde. Galera estou tentando desenvolver alguns componentes visuais java pra facilitar o desenvolvimento em desktop. Estou com um problema que é o seguinte: Tenho um campo boolean na minha aplicação que tem os gets e sets normalmente e quando importo meu componente no netbeans ele aparece nas propriedades mais quando mudo a propriedade a aplicação não esta lendo o valor que alterei. seguem as classes.

[code]package Br.Com.Util.CustomComponents;

import java.awt.event.FocusEvent;
import java.awt.event.KeyEvent;

/**
*

  • @author Josimar
    */
    public class JCustomTextField extends JBaseComponent {

    private boolean upperCase = true;

    public JCustomTextField() {
    setDocument(new UpperCaseDocument(isUpperCase()));
    keyListener();
    focusListener();
    }

    public boolean isUpperCase() {
    return upperCase;
    }

    public void setUpperCase(boolean upperCase) {
    this.upperCase = upperCase;
    }

    private void focusListener() {
    this.addFocusListener(new java.awt.event.FocusAdapter() {

         @Override
         public void focusGained(FocusEvent e) {
             super.focusGained(e);
             selectAll();
         }
    
         @Override
         public void focusLost(java.awt.event.FocusEvent evt) {
             super.focusLost(evt);
         }
     });
    

    }

    private void keyListener() {
    this.addKeyListener(new java.awt.event.KeyAdapter() {

         @Override
         public void keyPressed(KeyEvent e) {
             if (e.getKeyCode() == e.VK_ENTER) {
                 transferFocus();
             }
             super.keyPressed(e);
         }
    
         @Override
         public void keyTyped(java.awt.event.KeyEvent evt) {
             if (getMaxCharacters() > 0) {
                 if (getMaxCharacters() <= getText().length()) {
                     evt.consume();
                 }
             }
             super.keyTyped(evt);
         }
     });
    

    }
    }[/code]

[code]
package Br.Com.Util.CustomComponents;

import javax.swing.JTextField;

/**
*

  • @author Josimar
    */
    public abstract class JBaseComponent extends JTextField {

    private Integer maxCharacters = 0;
    private Boolean fieldNull = true;

    public JBaseComponent() {
    }

    @Override
    public String getText() {
    return super.getText();
    }

    @Override
    public void setText(String text) {
    super.setText(text);
    }

    public Boolean getFieldNull() {
    return fieldNull;
    }

    public void setFieldNull(Boolean fieldNull) {
    this.fieldNull = fieldNull;
    }

    public Integer getMaxCharacters() {
    return maxCharacters;
    }

    public void setMaxCharacters(Integer maxCharacters) {
    this.maxCharacters = maxCharacters;
    }
    }[/code]

[code]
package Br.Com.Util.CustomComponents;

import javax.swing.text.BadLocationException;
import javax.swing.text.PlainDocument;

/**
*

  • @author Josimar
    */
    public class UpperCaseDocument extends PlainDocument {
    private boolean upperCase;
    public UpperCaseDocument(boolean upperCase) {
    this.upperCase = upperCase;
    }

    @Override
    public void insertString(int offs, String str, javax.swing.text.AttributeSet a) throws BadLocationException {
    if (upperCase) {
    super.insertString(offs, str.toUpperCase(), a);
    } else {
    super.insertString(offs, str.toLowerCase(), a);
    }
    }
    }[/code]