ATENÇÃO
Este fórum é destinado a dúvidas sobre a linguagem de programação JAVA. Se tiver dúvidas sobre javascript, use o fórum Ajax, javascript, XML, DOM.
![]() ![]() |
07/06/2008 - 09:17
Post
#1
|
|
|
|
Eu que crio um JTExt com espaço para três caracteres usando uma variável privada da minha classe assim:a=new JTExtField(3), mas conforme o usuário queira, o texto pode se estender ilimitadamente. Como eu deveria fazer para que o JTExtField apenas permitisse três letras, sendo que se o usuário digitasse mais que isso, elas não apareceriam. Existe uma função para isso?
|
|
|
07/06/2008 - 17:22
Post
#2
|
|
|
|
Uma solução sugerida pelo pessoal no fórum da Sun:
CODE import javax.swing.*; import javax.swing.text.*; class MyTextVerifier extends PlainDocument { public void insertString(int offset, String str, AttributeSet attSet) throws BadLocationException { boolean valid = false; if (str == null) return; String old = getText(0, getLength()); String newStr = old.substring( 0, offset ) + str + old.substring( offset ); valid = isValid(newStr); if (valid) super.insertString( offset, str, attSet ); } public boolean isValid(String str) { return str.length() < 10; } } class Teste extends JFrame { public Teste() { setSize(300, 100); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JTextField f = new JTextField(); f.setDocument(new MyTextVerifier()); add(f); } public static void main(String[] args) { Teste t = new Teste(); t.setVisible(true); } } Na função isValid() você pode acrescentar outras opções de validação. -------------------- Álinson Santos Xavier
Jabber: iSoron@gmail.com MSN: iSoron@hotmail.com |
|
|
![]() ![]() ![]() |
| Versão Simples | Horário: 02/09/2010 - 22:05 |