Ai galera, se alquem puder me ajudar agradeço
eu quero criar um campo JTextField para o usuario inserir um número, ok.
tem como eu limitar que ele não digite mais de 10 dígitos dentro desse campo?
tb tem como eu fazer ele digitar apenas números?
espero que vcs tenham me entendido, já olhei na api dessa classe mais não consequi nada!
valeu 
Procure sobre MaskFormatter
Posts sobre MaskFormatter aqui no PJ.
http://www.portaljava.com/home/modules.php?name=Forums&file=search&mode=results
Google…
http://www.google.com.br/search?q=maskformatter&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:pt-BR:official&client=firefox-a
crie essa classe :
public class NumberField extends JTextField {
public NumberField() {
setDocument( new PlainDocument() {
@Override
public void insertString( int offs, String str, AttributeSet a ) throws BadLocationException {
for( int i = 0; i < str.length(); i++ )
if((Character.isDigit(str.charAt(i)) == false) || (str.length()>9)){
Toolkit.getDefaultToolkit().beep();
return;
}
super.insertString( offs, str, a );
}
} );
}
}
eu coloquei a condição de 10 caracteres, mas nao testei… entao da uma olhada ai, na hora q vc criar o botao é assim:
NumberField botao = new NumberField();
flw
cara é que eu sou meio inquinorante no assunto
eu fiz a classe mas fica dando uns erros de cannot find symbol
quais os pacotes que devo importar para a classe?
valeu a ajuda!
eu fucei na especificação da api e consequi fazer a classe rodar
o campo só aceita números como o esperado, só que ele não para quando a contagem chega a número esperado (no caso 9)
eu fiz assim:
classe NumberField:
import javax.swing.;
import java.awt.;
import javax.swing.text.PlainDocument;
import javax.swing.text.BadLocationException;
import javax.swing.text.AttributeSet;
public class NumberField extends JTextField {
public NumberField() {
super(10);
setDocument( new PlainDocument() {
@Override
public void insertString( int offs, String str, AttributeSet a ) throws BadLocationException {
for( int i = 0; i < str.length(); i++ )
if((Character.isDigit(str.charAt(i)) == false) || (str.length()>9)){
Toolkit.getDefaultToolkit().beep();
return;
}
super.insertString( offs, str, a );
}
} );
}
}
classe TesteNumberField:
import javax.swing.;
import java.awt.;
public class TesteNumberField extends JFrame {
private NumberField campo;
public TesteNumberField() {
super("teste");
setLayout(new FlowLayout());
campo = new NumberField();
add(campo);
}
public static void main(String[] args) {
TesteNumberField teste = new TesteNumberField();
teste.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
teste.setSize(300, 200);
teste.setVisible(true);
}
}
???
[code] // Declaracão
ftxtTelefone = new JFormattedTextField(Mascara("(##)####-####"));
txtCelular = new JFormattedTextField(Mascara("(##)####-####"));
public MaskFormatter Mascara(String Mascara){
MaskFormatter Mask = new MaskFormatter();
try{
Mask.setMask(Mascara);
}
catch(Exception excessao){
excessao.printStackTrace();
}
return Mask;
}
[/code]