Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Java - Problema con  JTextField
Forum - Java - Problema con JTextField

Avatar
Bonny (Member)
Expert


Messaggi: 437
Iscritto: 24/04/2009

Segnala al moderatore
Postato alle 21:00
Martedì, 29/06/2010
Salve sto sviluppando una applicazione dove inserisco dei dati tramite delle JTextField , volevo sapere se si può limitare l'imput dei caratteri ,tipo se esiste una proprietà maxlength editable. usando il costruttore JTextField(int collum) nn funziona.
Grazie in anticipo:)

PM Quote
Avatar
tasx (Dev Team)
Expert


Messaggi: 439
Iscritto: 15/12/2008

Segnala al moderatore
Postato alle 22:43
Martedì, 29/06/2010
Puoi attacarti all'evento keypressed e da lì verificare ogni volta se la lunghezza è valida o no...

ciaociao!! :k::k:

PM Quote
Avatar
MrC (Member)
Newbie


Messaggi: 19
Iscritto: 28/11/2009

Segnala al moderatore
Postato alle 23:16
Martedì, 29/06/2010
Codice sorgente - presumibilmente Java

  1. class Limite extends PlainDocument
  2. {
  3.  public void inserisciStringa(int offs, String stringa, AttributeSet attr)
  4.                            throws BadLocationException
  5.  {
  6.             System.out.println("Insterisci la stringa!");
  7.             if(super.getLength() + stringa.length() < 8)
  8.             {
  9.               super.inserisciStringa(offs, stringa, attr);
  10.             }
  11.             else
  12.             {
  13.               super.inserisciStringa(offs, stringa.substring(0, 8 - super.getLength()), attr);
  14.             }
  15.  }
  16. }



Poi usi

Codice sorgente - presumibilmente Plain Text

  1. tuoTextField.setDocument(new Limite());



:idea::idea::idea::idea::idea:

Ultima modifica effettuata da MrC il 29/06/2010 alle 23:16
PM Quote
Avatar
Bonny (Member)
Expert


Messaggi: 437
Iscritto: 24/04/2009

Segnala al moderatore
Postato alle 12:33
Mercoledì, 30/06/2010
Testo quotato

Postato originariamente da tasx:

Puoi attacarti all'evento keypressed e da lì verificare ogni volta se la lunghezza è valida o no...

ciaociao!! :k::k:



Ma quando intercetto l'evento con il metodo
   public void keyPressed(KeyEvent e) {
  
    }
come faccio a capire su quale JTextFiled è stato intercettato?
Devo usare un metodo del tipo e.getActionCommand() come per i JButton?
grazie:)

PM Quote
Avatar
bububs (Normal User)
Expert


Messaggi: 253
Iscritto: 11/03/2010

Segnala al moderatore
Postato alle 15:56
Mercoledì, 30/06/2010
Puoi intercettare la "casella attiva" facendo un cast, tipo questo:
JTextField casellaAttiva=(JTextField)(e.getSource());

Ultima modifica effettuata da bububs il 30/06/2010 alle 15:56
PM Quote
Avatar
Bonny (Member)
Expert


Messaggi: 437
Iscritto: 24/04/2009

Segnala al moderatore
Postato alle 18:54
Mercoledì, 30/06/2010
grazie:)

PM Quote
Avatar
MrC (Member)
Newbie


Messaggi: 19
Iscritto: 28/11/2009

Segnala al moderatore
Postato alle 23:04
Venerdì, 16/07/2010
Non era più semplice la mia soluzione ? :rotfl:

PM Quote
Avatar
Moon Knight (Ex-Member)
Rookie


Messaggi: 47
Iscritto: 07/12/2009

Segnala al moderatore
Postato alle 14:17
Sabato, 17/07/2010
Si potrebbe anche porre che la JTextField riceva stringhe di qualsiasi lunghezza e poi estrarre sottostringhe di un determinato numero di caratteri. Se si supera la soglia ci sarà un avviso a video.

PM Quote