Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 15 su 15

Discussione: problemino Java

  1. #11
    Utente di HTML.it
    Registrato dal
    Mar 2000
    Messaggi
    114
    Ok grazie!!

  2. #12
    Utente di HTML.it L'avatar di Angelo1974
    Registrato dal
    Feb 2003
    Messaggi
    1,107
    Ciao se non erro potresti risolvere il problema utilizzando un JFormattedField.... ma non ne sono troppo sicuro.
    Se vuoi trovare l'arcobaleno, devi sopportare la pioggia

  3. #13
    Utente di HTML.it
    Registrato dal
    Mar 2000
    Messaggi
    114
    Bhè non c'è un modo per creare un textfield esattamente di 1 colonna o almeno che non faccia scrivere più di un carattere??

  4. #14
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    Ho implementato una classe per costruire un JTextField che può visualizare un numero masimo di caratteri specificato nel costruttore:

    MaxLengthField field = new MaxLengthField(10, 5);

    dove il primo parametro rappresenta il numero massimo di caratteri che posssono essere inseriti nel campo, mentre il secondo rappresenta il numero di colonne, come nel normale costruttore di JTextField.

    PS: questa è la versione per swing! Non so se si puo facilmente adattare per awt,



    codice:
    import javax.swing.*;
    import javax.swing.event.*;
    import javax.swing.text.*;
    
    
    /*..........................................................*/
    /*...MaxLengthField realizza un JTextField che permette di .*/
    /*...inserire un numero di caratteri limitato e specificato */
    /*...attraverso il costruttore..............................*/
    /*..........................................................*/
    
    
    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;
    	}
    
    	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);
    		}
    	}
    
    }

  5. #15

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 © 2026 vBulletin Solutions, Inc. All rights reserved.