Olá amigos,
como que eu poderia fazer um texfield no netbeans so aceita numero e de no maximo 4 caracteres?
Codigo Fonte Netbeans
/* * limita.java * * Created on 28 de Junho de 2007, 12:30 */packagetestes;/** * * @author gggg */importjava.util.Random;importjava.util.Map.Entry;publicclasslimitaextendsjavax.swing.JFrame{/** Creates new form limita */publiclimita(){initComponents();}/** This method is called from within the constructor to * initialize the form. * WARNING: Do NOT modify this code. The content of this method is * always regenerated by the Form Editor. */// <editor-fold defaultstate="collapsed" desc=" Cdigo Gerado "> privatevoidinitComponents(){codigo=newjavax.swing.JTextField();codigo.setDocument(newFixedLengthDocument(10));setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);org.jdesktop.layout.GroupLayoutlayout=neworg.jdesktop.layout.GroupLayout(getContentPane());getContentPane().setLayout(layout);layout.setHorizontalGroup(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING).add(layout.createSequentialGroup().add(159,159,159).add(codigo,org.jdesktop.layout.GroupLayout.PREFERRED_SIZE,173,org.jdesktop.layout.GroupLayout.PREFERRED_SIZE).addContainerGap(68,Short.MAX_VALUE)));layout.setVerticalGroup(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING).add(layout.createSequentialGroup().add(90,90,90).add(codigo,org.jdesktop.layout.GroupLayout.PREFERRED_SIZE,org.jdesktop.layout.GroupLayout.DEFAULT_SIZE,org.jdesktop.layout.GroupLayout.PREFERRED_SIZE).addContainerGap(190,Short.MAX_VALUE)));pack();}// </editor-fold> /** * @param args the command line arguments */publicstaticvoidmain(Stringargs[]){java.awt.EventQueue.invokeLater(newRunnable(){publicvoidrun(){newlimita().setVisible(true);}});}// Declarao de variveis - no modifique privatejavax.swing.JTextFieldcodigo;// Fim da declarao de variveis }
COdigo que eu copiei aqui no GUJ
/* FixedLengthDocument.java */importjavax.swing.*;importjavax.swing.text.*;publicclassFixedLengthDocumentextendsPlainDocument{privateintiMaxLength;publicFixedLengthDocument(intmaxlen){super();iMaxLength=maxlen;}@OverridepublicvoidinsertString(intoffset,Stringstr,AttributeSetattr)throwsBadLocationException{if(str==null)return;if(iMaxLength<=0)// aceitara qualquer no. de caracteres{super.insertString(offset,str,attr);return;}intilen=(getLength()+str.length());if(ilen<=iMaxLength)// se o comprimento final for menor...super.insertString(offset,str,attr);// ...aceita strelse{if(getLength()==iMaxLength)return;// nada a fazerStringnewStr=str.substring(0,(iMaxLength-getLength()));super.insertString(offset,newStr,attr);}}}
Amigo, zzzhhh, você pode tentar adicionar um KeyListener, capturar o evento keyPressed(KeyEvent ke) e, logo em seguida, usar o método subtring(0, 4). Sendo assim, limitará a entrada na caixa de texto em quatro caracteres. Para saber quantos caracteres existem na JTextFild você pode usar o método length(). Quanto aos códigos, tente desenvolvê-los.