Utilizzando l'editor di NetBeans GUI, come posso creare un campo JTextField o JFormattedText che deve essere convalidato rispetto un'espressione regolare?

StackOverflow https://stackoverflow.com/questions/1378978

Domanda

Ho un espressione regolare (\d{4}\w{3}(0[1-9]|[12][0-9]|3[01])([01][0-9]|2[0-3])([0-5][0-9]){2}) che ho bisogno di validare l'input di un campo di testo contro quando l'utente fa clic sul pulsante OK o si sposta il cursore su un altro campo. Che io so come fare, scrivere il codice. Tuttavia, mi interessa se è possibile avere il NetBeans GUI editor di fare un po 'di lavoro per me, soprattutto perché mi sto muovendo da Eclipse e NetBeans verso il mio IDE di scelta, e mi piacerebbe sfruttare al massimo degli strumenti che essa fornisce.

È stato utile?

Soluzione

Aprire le proprietà della JTextField, nella scheda aspetto proprietà per inputVerifier. Aprilo

Ora ti verrà chiesto di introdurre il codice InputVerifier.

ftf2.setInputVerifier(new InputVerifier() {
  public boolean verifyText(String textToVerify) {
     Pattern p = Pattern.compile("your regexp");
     Matcher m = p.matcher(textToVerify);
        if (m.matches()) {
        setComponentValue(textToVerify);
        return true;
    }
    else {
        return false;
    }

  }
});

Non ho compilato questo codice, in modo da poter contenere degli errori. Ma penso che si ottiene l'idea;)

Altri suggerimenti

Questa non è la soluzione più semplice, ma è molto potente: prova a primavera rich client , dove convalida potrebbe essere raggiunto attraverso:

public class Validation extends DefaultRulesSource {

private Constraint NAME_VALIDATION = all(new Constraint[]{minLength(3), required()});

public void load() {
    addRules(new Rules(Person.class) {

        @Override
        protected void initRules() {
            add("name", NAME_VALIDATION);
        }
    });

...

e il modulo di interfaccia grafica è facilmente creato tramite:

    TableFormBuilder formBuilder = getFormBuilder();
    formBuilder.add("firstName");
    formBuilder.add("name");
    formBuilder.row();

es. guardare qui per la convalida o di qui per maggiori informazioni . Sto usando questo con successo nel mio progetto open source ...

In questo modo si potrebbe creare un componente più generale oscillazione che potrebbe essere aggiunta alle href="http://wiki.netbeans.org/FaqFormUsingCustomComponent" tavolozza componente

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top