Creation dynamique de zone texte en java

Résolu/Fermé
nina2009 - 12 déc. 2008 à 02:14
 moh - 19 juin 2012 à 12:12
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
A voir également:

5 réponses

sandul Messages postés 3924 Date d'inscription jeudi 22 mai 2008 Statut Membre Dernière intervention 8 octobre 2010 722
12 déc. 2008 à 02:36
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 bcp , j'avais pas mis le new dans la boucle je vais l'essayer
0
ca marche pas
0
sandul Messages postés 3924 Date d'inscription jeudi 22 mai 2008 Statut Membre Dernière intervention 8 octobre 2010 722
12 déc. 2008 à 09:51
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à...

++
2
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
0
UN TRES GRAND MERCI SANDUL
0
ca marcher merci :)
0
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
sandul Messages postés 3924 Date d'inscription jeudi 22 mai 2008 Statut Membre Dernière intervention 8 octobre 2010 722
16 déc. 2008 à 10:49
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à.

++
0