Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    n JtextField al runtime

    Dunque durante lo svolgimento di un progetto mi sn trovato difronte alla necessità di creare e dunque visualizzare n jTextField al runtime.
    Il contesto, come credo si immagini, è un applet in Java dove ho un nColumn (Jtextfield) nella quale l'utente inserisce un numero a suo piacere e un OkBt (JButton) il quale dovrebbe istanziare e visualizzare nel pannello nColumn.gettext (immagino oppurtunamente castato ad int) jTextField.

    Quindi a questo punto domando a voi come dovrei risolvere?
    Inoltre visto che ci sono sottopongo anche il problema che mi sorge immediatamente dopo questo, come faccio poi a nominare in maniera differente tutte le n JtextField che vado a creare? Nel senso poniendo di avere un for da 1 to n che ogni volta fa una JTextFiel txt1= new JTextField; si chiamerebbero tutte txt1 e immagino venga sollevata una eccezione.

    Spero di essermi espresso correttamente e sopratutto che ci sia una soluzione a questo :P ringrazio anticipatamente chi vorrà aiutarmi.

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    cosa ti vieta in un ciclo di fare

    codice:
    JTextField field; 
    for (....){
      field = new JTextField(); 
      panel.add(field);
    }
    l'unico prob è dopo ricordarti in che posizione stanno (e puoi usare anche indici), ma questo non è un problema allucinante

  3. #3
    Originariamente inviato da valia
    cosa ti vieta in un ciclo di fare

    codice:
    JTextField field; 
    for (....){
      field = new JTextField(); 
      panel.add(field);
    }
    l'unico prob è dopo ricordarti in che posizione stanno (e puoi usare anche indici), ma questo non è un problema allucinante
    Allora credo che manchi qualcosa nelle mie nozioni di Java (anche senza il credo direi);
    JTextField field; questa istruzione mi crea un Jtextfield di nome field
    field = new JTextField(); alla prima iterata istanzia una textfield di nome field, ma alla seconda non da errore in quanto field esiste già e io voglio re-istanziarla?

    Quello insomma che non capisco è come fa java a differenziarle, e specialmente io, in un secondo momento ad estrarre informazioni ad esempio dalla terza txt se tutte si chiamano field? >.<

    EDIT: Segno sicuramente questo sito tra i preferiti per vastità di contenuti e prontezza di risposta =D

  4. #4
    Man mano che crei i JTextField devi inserirli in una qualche struttura dati (array, lista, ecc.)
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    allora fai pensa una cosa

    codice:
    int [] array ; //supponi possa contenere 10 elementi 
    
    int n;
    for (int i = 0; i < 10 ; i++){
      n = 100*i;
      array[i] = n;
    }
    qui ho semplicemente detto che ho un array di 10 elementi, faccio un ciclo in cui definisco una variabile intera n fuori dal ciclo (non ho bisogno di un nuovo oggetto all'interno di ogni ciclo) e assegno un valore (100 * i) ad ogni ciclo. Ma io questo valore me lo conservo con

    array[i] = n;

    è un modo rapido per popolare un array.

    Ora JPanel è un contenitore (può contenere altri elementi swing),quindi nel codice che hai visto tu faccio una cosa simile a quella che ti ho descritto sopra.
    Definisco una variabile di tipo JTextField, la istanzio e il contenuto me lo conservo nel JPanel (è quello che ha ancora il riferimento alla mia variabile). Alla seconda tornata ne creo una nuova e la aggiungo al JPanel, il JPanel ha a questo punto 2 diversi oggetti di tipo JTextField.
    Questo è lecito. Il problema è se tu in un secondo momento devi accedere a questi campi di testo devi mantenerti un certo riferimento (o fare in modo di trovarli in maniera rapida).

  6. #6
    Perfetto tutta chiara la spiegazione

    Originariamente inviato da valia
    Il problema è se tu in un secondo momento devi accedere a questi campi di testo devi mantenerti un certo riferimento.
    Ecco, è esattamente questo in quanto poi le varie stringhe contenute nelle diverse field concatenate tra loro andranno a costituire il parametro del metodo executeUpdate per una INSERT INTO in un db (sulla quale ad ogni modo non ho alcun problema quindi fine OT).

    Dunque vediamo se ho capito alla buona, al momento non ho il progeto tra le mani sono costretto a rinviare a questa sera la prova

    codice:
    JTextField array[];
    for (int i = 0; i < 10 ; i++){
      array[i] = new JTextField;
      panel.add(array[i];
    }
    In un ipotetico bottone finish avrei:

    codice:
    String param=" INSERTERT INTO X ";
    for (int i = 0; i < 10 ; i++)
    param= param + array[i] + ", ";

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.