Caixa Alta no JFormattedTexField com qualquer caracter alguem sabe?

3 respostas
Junior_Rocha

Estou com a seguinte dificuldade:

como definir uma mascara que seja caixa alta mas que tambem aceite numero e outros tipos de caracter ???

eu sei que o MaskFormatter(“UUUUU”) o jFormattedtextField deixa tudo como maiuscula… mas ele não aceita numeros e outro tipo de caracter.

alguem tem alguma dica ?

3 Respostas

spadinha

o marciofermino acabou de perguntar a mesma coisa.

http://www.guj.com.br/posts/list/92934.java

T

Não gosto de usar JFormattedTextField - sempre o achei meio desajeitado de usar.
Veja um exemplo no próprio Javadoc de JTextField.

import java.awt.Rectangle;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.SwingUtilities;
import javax.swing.text.AttributeSet;
import javax.swing.text.BadLocationException;
import javax.swing.text.Document;
import javax.swing.text.PlainDocument;

/**
 * A classe abaixo foi copiada do Javadoc de JTextField. 
 */
class UpperCaseField extends JTextField {
	 
	public UpperCaseField() {
		super();
	}
	
    public UpperCaseField(int cols) {
        super(cols);
    }

    protected Document createDefaultModel() {
        return new UpperCaseDocument();
    }

    static class UpperCaseDocument extends PlainDocument {

        public void insertString(int offs, String str, AttributeSet a) 
            throws BadLocationException {

            if (str == null) {
                return;
            }
            char[] upper = str.toCharArray();
            for (int i = 0; i < upper.length; i++) {
                upper[i] = Character.toUpperCase(upper[i]);
            }
            super.insertString(offs, new String(upper), a);
        }
    }
}

/**
 * Exemplo de classe que usa o UpperCaseField. 
 */
public class ExemploJTextFieldMaiusculas extends JFrame {

	private static final long serialVersionUID = 1L;

	private JPanel jContentPane = null;

	private JTextField txtMaiusculas = null;

	/**
	 * This method initializes txtMaiusculas	
	 * 	
	 * @return javax.swing.JTextField	
	 */
	private JTextField getTxtMaiusculas() {
		if (txtMaiusculas == null) {
			txtMaiusculas = new UpperCaseField ();
			txtMaiusculas.setBounds(new Rectangle(15, 17, 256, 29));
		}
		return txtMaiusculas;
	}

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		SwingUtilities.invokeLater(new Runnable() {
			public void run() {
				ExemploJTextFieldMaiusculas thisClass = new ExemploJTextFieldMaiusculas();
				thisClass.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
				thisClass.setVisible(true);
			}
		});
	}

	/**
	 * This is the default constructor
	 */
	public ExemploJTextFieldMaiusculas() {
		super();
		initialize();
	}

	/**
	 * This method initializes this
	 * 
	 * @return void
	 */
	private void initialize() {
		this.setSize(300, 200);
		this.setContentPane(getJContentPane());
		this.setTitle("JFrame");
	}

	/**
	 * This method initializes jContentPane
	 * 
	 * @return javax.swing.JPanel
	 */
	private JPanel getJContentPane() {
		if (jContentPane == null) {
			jContentPane = new JPanel();
			jContentPane.setLayout(null);
			jContentPane.add(getTxtMaiusculas(), null);
		}
		return jContentPane;
	}

}
I

Valeu pelo tópico, eu estava quereno colocar o texto digitado num textfild, minusculo e ao clicar em salvar, mandar pro banco maiusculo.

Então olhando o tópico eu coloquei apenas isso.

instance.setCliente(jTCliente.getText().toUpperCase())

se alguem precisar de algo parecido, está aí.

Abraço

Criado 3 de junho de 2008
Ultima resposta 2 de set. de 2009
Respostas 3
Participantes 4