Question

J'espère qu'il est correct terme sage de dire que les composants dans une interface graphique est comme JButton, JPanel, JTextField, toutes ces bonnes choses.

Je veux créer un champ de texte qui prend dans un nombre entier. Ensuite, un bouton d'envoi peut être pressé et basé sur l'entier qui a été entré, créer que beaucoup dans textfields une fenêtre ou autre.

Je n'ai pas la moindre idée, quelqu'un pouvait me commencer à travailler dans la bonne direction?

Le problème que je vais avoir est que je n'ai pas la moindre idée comment créer une boucle pour créer les composants de l'interface graphique. Je veux dire si j'ai une boucle et faire quelque chose comme:

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

puis dans une boucle, il ne fera que créer 1 champ de texte quand je veux beaucoup. Comment puis-je créer des variables de génériquement JTextFields?

Merci pour votre aide ...

Était-ce utile?

La solution

Utilisez un LayoutManager approprié (par exemple GridLayout) pour créer et ajouter des champs de texte.

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

Autres conseils

Essayez quelque chose comme ceci:

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);
}

Ne pas oublier de mettre un gestionnaire de mise en page correcte pour le conteneur. (JPanel1 dans ce cas)

Je voudrais créer une liste pour stocker les champs de texte, et vous pouvez les récupérer par index. Ensuite, vous pouvez avoir autant de champs que vous avez besoin.

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 );
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top