texto sumar resultado propiedades obtener numeros mostrar fondo eventos definicion como java netbeans jtextfield

java - sumar - Limitar las entradas de TextField



sumar dos numeros en java jtextfield (2)

Estoy tratando de crear un campo de texto que limite la entrada de un usuario. Tengo este código:

private void jTextField5KeyTyped(java.awt.event.KeyEvent evt) { //This limits the input: if(jTextField5.getText().length()>=2) { jTextField5.setText(jTextField5.getText().substring(0, 1)); } }

Limita con éxito la entrada. Sin embargo, cuando traté de presionar otros caracteres en el teclado, cambia el último carácter en el campo de texto. Alguna idea para detener esto? Sé que otros dirán que debería usar Document (No puedo recordar) al hacer este tipo de cosas, pero no puedo. No sé cómo hacerlo en netbeans. Por favor ayuda.


Aquí hay una manera simple de hacerlo:

private void textFieldKeyTyped(java.awt.event.KeyEvent evt) { if(textField.getText().length()>=2) { evt.consume(); } }


Pruebe este ejemplo que usa PlainDocument :

class JTextFieldLimit extends PlainDocument { private int limit; JTextFieldLimit(int limit) { super(); this.limit = limit; } JTextFieldLimit(int limit, boolean upper) { super(); this.limit = limit; } public void insertString(int offset, String str, AttributeSet attr) throws BadLocationException { if (str == null) { return; } if ((getLength() + str.length()) <= limit) { super.insertString(offset, str, attr); } } } public class Main extends JFrame { JTextField textfield1; JLabel label1; public void init() { setLayout(new FlowLayout()); label1 = new JLabel("max 10 chars"); textfield1 = new JTextField(10); add(label1); add(textfield1); textfield1.setDocument(new JTextFieldLimit(110));///enter here the Maximum input length you want setSize(300, 300); setVisible(true); } }