Componentes Swing personalizados

0 respostas
josimarsis
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.
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);
            }
        });
    }
}
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;
    }
}
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);
        }
    }
}
Criado 22 de março de 2010
Respostas 0
Participantes 1