Bouton ajouter ligne, Swing, Pas en tableau
Résolu
EGP-Swyx
Messages postés
6664
Date d'inscription
Statut
Contributeur
Dernière intervention
-
EGP-Swyx Messages postés 6664 Date d'inscription Statut Contributeur Dernière intervention -
EGP-Swyx Messages postés 6664 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
je travaille actuellement sur une appli qui a une interface Swing.
mon interface fonctionne (à peu près) mais je dois ajouter un traitement complexe sur l'interface.
En simple. J'ai un Jlabel et un JTextField pour un Jbutton Ajouter ligne.
Lors de la pression de ce boutton normalement, celà ajoute un nouveau groupe JLabel et JTextField. et décale le bouton.
Avez vous une idée pour faire ça?
Cordialement, Swyx
(technicien de montage/maintenance hardware informatique)
je travaille actuellement sur une appli qui a une interface Swing.
mon interface fonctionne (à peu près) mais je dois ajouter un traitement complexe sur l'interface.
En simple. J'ai un Jlabel et un JTextField pour un Jbutton Ajouter ligne.
Lors de la pression de ce boutton normalement, celà ajoute un nouveau groupe JLabel et JTextField. et décale le bouton.
Avez vous une idée pour faire ça?
Cordialement, Swyx
(technicien de montage/maintenance hardware informatique)
A voir également:
- Bouton ajouter ligne, Swing, Pas en tableau
- Tableau word - Guide
- Partager photos en ligne - Guide
- Tableau ascii - Guide
- Mètre en ligne - Guide
- Trier un tableau excel - Guide
1 réponse
Bonjour,
Moi j'aurai fait comme ça (rapidement, sans implémenter de MVC ^.^) :
A+
Moi j'aurai fait comme ça (rapidement, sans implémenter de MVC ^.^) :
import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.Vector; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTextField; public class Swing { static JFrame f = new JFrame(); static Vector<JTextField> jtextields = new Vector<JTextField>(); static Vector<JLabel> jlabels = new Vector<JLabel>(); static JButton ajouter = new JButton("Ajouter"); static JPanel panel; public static void main(String[] args) { jtextields.add(new JTextField()); jlabels.add(new JLabel("test : ")); //ajout d'un listener sur le bouton qui ajoute une ligne ajouter.addActionListener(new ActionListener(){ @Override public void actionPerformed(ActionEvent arg0) { //ajout de la ligne jtextields.add(new JTextField()); jlabels.add(new JLabel("test : ")); refreshInterface(); } }); creerInterface(); } private static void refreshInterface() { //on enlève le panel et on recrée l'interface f.remove(panel); creerInterface(); } private static void creerInterface() { //on créé un panel avec un GridLayout dont le nombre de ligne vaut le nombre de textefields à afficher //(+1 pour le bouton Ajouter) panel = new JPanel(new GridLayout(jtextields.size()+1,2)); //ajout de tous les textfields et label for(int i=0; i<jtextields.size();i++){ panel.add(jlabels.get(i)); panel.add(jtextields.get(i)); } //ajoute le bouton panel.add(ajouter); //ajoute le panel à la frame f.add(panel); f.setSize(500, 500); f.setVisible(true); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } }
A+
Merci !