Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    1,258

    [java] opzioni JTextField

    Ho guardato sulle API ma non ho trovato nulla
    help! mi serve sapere come fare a limitare il numero massimo di caratteri digitabili e se possibile come fare in modo che vengano ammessi solo numeri
    thk!

  2. #2
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    MaxLengthField(n) ti costruisce un campo di testo che non accetta piu di n caratteri, con MaxLengthField(n, k) stabilisci anche il numero di colonne che il campo deve avere (k). Ampliando i controlli eseguiti in MaxLengthDocument.insertString puoi controllare che la stringa risultatnte dall'inserimento sia un numero, e solo in questo caso invocare super.insertString(offs, str, a) altrimenti fai un return e l'inserimento non sarà accettato.

    codice:
    class MaxLengthField extends JTextField {
    
    	private int maxLength;
    
    	//Il primo parametro del costruttore rappresenta il numero
    	//massimo di caratteri
    	public MaxLengthField(int maxLength, int cols) {
    		super(cols);
    		this.maxLength = maxLength;
    	}
    
    	public MaxLengthField(int maxLength) {
    			this(maxLength, maxLength);
    	}
    
    	protected Document createDefaultModel() {
    		return new MaxLengthDocument();
    	}
    
    	//Metodo per cambiare dinamicamente il numero massimo di caratteri
    	//che il campo può contenere
    	public void setMaxLenght(int maxLength){
    		this.maxLength = maxLength;
    	}
    
    	//Restituisce il numero massimo di caratteri che il campo può
    	//contenere
    	public int getMaxLenght(){
    		return maxLength;
    	}
    
    	//Il Document che gestisce l'inserimento del testo
    	class MaxLengthDocument extends PlainDocument {
    
    		//La stringa da inserire se è troppo lunga viene troncata
    		public void insertString(int offs, String str, AttributeSet a)
    			throws BadLocationException {
    
    			if (str == null)
    				return;
    
    			if(getLength() == maxLength)
    				return;
    
    			if(str.length() + getLength() > maxLength)
    				str = str.substring(0, maxLength - getLength());
    
    			super.insertString(offs, str, a);
    		}
    	}
    
    }

    Sun Certified Java Programmer

    EUCIP Core Level Certified

    European Certification of Informatics Professionals

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    1,258
    Che bravo! Grazie allora, è anche educativo questo programma.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.