Domanda

Spero che sia corretto termine-saggio a dire che i componenti di una GUI è come JButton, JPanel, JTextField, tutta quella roba buona.

Voglio creare un campo di testo che prende in un numero intero. Poi un pulsante di invio può essere premuto e in base al numero intero che è stato immesso, creare che molti campi di testo in una finestra pop-up o qualsiasi altra cosa.

Non ho nessuna idea, qualcuno potrebbe fatemi iniziare nella giusta direzione?

Il problema che sto avendo è che non ho idea di come creare un ciclo for per creare i componenti GUI. Voglio dire, se ho un ciclo for e fare qualcosa di simile:

print("JTextField num1 = new JTextField()");

poi in un ciclo for si creerà solo 1 campo di testo quando voglio tanti. Come faccio genericamente creare variabili di JTextFields?

Grazie per il vostro aiuto ...

È stato utile?

Soluzione

Utilizzare un LayoutManager appropriata (ad esempio GridLayout) per creare e aggiungere i campi di testo.

for (i = 0; i < numberOfTextFields; i++) {
    JTextField textField = new JTextField();
    container.add(textField);
    /* also store textField somewhere else. */
}

Altri suggerimenti

Provare qualcosa di simile a questo:

List<JTextField> nums = new ArrayList<JTextField>();
JTextField tempField;

for (int i = 0; i < 10; i++) {
    tempField = new JTextField();
    jPanel1.add(tempField); // Assuming all JTextFields are on a JPanel
    nums.add(tempField);
}

Non dimenticate di impostare un gestore di layout adeguato per il contenitore. (JPanel1 in questo caso)

Vorrei creare una lista per memorizzare i campi di testo, e quindi è possibile ottenere indietro in base all'indice. Poi si può avere come molti campi di cui hai bisogno.

List fields = new ArrayList();

// Create as many elements as you need
for (int i = 0; i < numberOfElements; i++){
  JTextField field = new JTextField();
  // Add the fields to some panel so they are shown in the screen.  
  // I assume that the component is called parent panel
  parentPanel.add(field);

  // Store the component in the list so you can retrieve it later
  fields.add(field);
}

// ...

// When you want to retrieve a particular one:

JTextField field = (JTextField)fields.get( indexToRetrieve );
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top