Creation dynamique de zone texte en java

[Résolu/Fermé]
Signaler
-
 moh -
Salut, je voudrai savoir comment faire pour creer des zone de texe avec leur labael dynamiquement
j'ai essayé de faire une boucle pour la creation des zones de texte mais le probleme k'ils ont le meme nom alors comme resultat j'obtient une seule zone
comment faire pour creer ces zones avec des noms differents
merci d'avance j'espere que vous m'aidez car j'en ai vraiment besoin

5 réponses

Messages postés
3924
Date d'inscription
jeudi 22 mai 2008
Statut
Membre
Dernière intervention
8 octobre 2010
708
Salut,

Voici un bout de code:

for (int i=0; i<10; i++) {
JTextField tf = new JTextField("ceci est le no " + i); // il est essentiel de faire le new ici !!
panel.add(tf);
}

++
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Merci bcp , j'avais pas mis le new dans la boucle je vais l'essayer
ca marche pas
Messages postés
3924
Date d'inscription
jeudi 22 mai 2008
Statut
Membre
Dernière intervention
8 octobre 2010
708
Pour récupérer les valeurs: il faut bien retenir les références aux JTextField quelque part pour pouvoir les accéder ultérieurement.

Un petit exemple fait à la va-vite:
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class Nina2009Sample extends JFrame {
	private static final long serialVersionUID = 1L;
	private final static int ROW_SIZE = 4;
	private JTextField[] tfArray = new JTextField[ROW_SIZE * ROW_SIZE];

	public static void main(String args[]) {
		try {
			Nina2009Sample frame = new Nina2009Sample();
			frame.setVisible(true);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	public Nina2009Sample() {
		super();
		getContentPane().setLayout(new BorderLayout());
		setBounds(100, 100, 500, 375);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

		final JPanel centerPane = new JPanel();
		centerPane.setLayout(new GridLayout(ROW_SIZE, ROW_SIZE));
		getContentPane().add(centerPane);

		final JPanel southPane = new JPanel();
		final FlowLayout flowLayout_1 = new FlowLayout();
		flowLayout_1.setAlignment(FlowLayout.RIGHT);
		southPane.setLayout(flowLayout_1);
		getContentPane().add(southPane, BorderLayout.SOUTH);

		final JButton printCellValuesButton = new JButton();
		printCellValuesButton.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				for (int i = 0; i < ROW_SIZE; i++) {
					for (int j = 0; j < ROW_SIZE; j++) {
						System.out.print("[" + tfArray[i * ROW_SIZE + j].getText() + "]\t");
					}
					System.out.println();
				}
			}
		});

		printCellValuesButton.setText("Print Cell Values");
		southPane.add(printCellValuesButton);
		final FlowLayout flowLayout = new FlowLayout();
		flowLayout.setAlignment(FlowLayout.RIGHT);

		for (int i = 0; i < ROW_SIZE; i++) {
			for (int j = 0; j < ROW_SIZE; j++) {
				tfArray[i * ROW_SIZE + j] = new JTextField("cell " + i + ":" + j);
				centerPane.add(tfArray[i * ROW_SIZE + j]);
			}
		}
		//
	}
}

Voilà...

++
Merci sundul,

je ne sais pas pourquoi que quand je clique sur le bouton il ne me fait rien alor que j'ai fait le addAction
UN TRES GRAND MERCI SANDUL
ca marcher merci :)
j'ai eu un autre problem , c'est comment recuperer le contenu saisi dans les zones de textes crées ,
je veux en cliquant sur un button je recupere ces valeurs
Messages postés
3924
Date d'inscription
jeudi 22 mai 2008
Statut
Membre
Dernière intervention
8 octobre 2010
708
Heu.... Je ne comprends pas:
quand je clique sur le bouton il ne me fait rien alor que j'ai fait le addAction <== tu parles de mon exemple? De ton code?

Si tu parles de mon exemple: il écrit à la console, regarde donc de ce côté-là.

++