Un problème avec mon JTextfield et JList

Messages postés
2
Date d'inscription
lundi 20 août 2018
Dernière intervention
22 août 2018
- - Dernière réponse : Layediakite
Messages postés
2
Date d'inscription
lundi 20 août 2018
Dernière intervention
22 août 2018
- 22 août 2018 à 11:22
Bonjour,
Je suis un débutant .
Je suis sur un projet et je aimerai récupérer un texte dans JTextfield et l'ajouter sur une JList.j'ai esseye getTex().
Merci d'avance
Afficher la suite 

Votre réponse

1 réponse

Messages postés
5307
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
14 décembre 2018
0
Merci
Salut,

Je ne vois pas bien à quel niveau tu bloques.
Pour ce qui est de la récupération d'un texte issue d'un JTextField, il suffit bien d'appeler la méthode getText() de ce dernier.
Quant à l'ajout/modification/suppression d'un élément d'une JList il faut passer par son model.

Voir l'exemple ci-après:
L'exemple doit être compilé avec un jdk >= 1.8
public static void main(String[] args) {
  JFrame frame = new JFrame();
  frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  /* zone de texte */
  JTextField text = new JTextField();
  /* liste et model */
  DefaultListModel<String> listModel = new DefaultListModel<String>();
  JList<String> list = new JList<>(listModel);
  /* Récupérable également comme suit */
  /* DefaultListModel<String> listModel = (DefaultListModel<String>)list.getModel(); */
  /* boutons */
  JButton buttonAdd = new JButton("Add");/* Bouton pour l'ajout du texte dans la liste. */
  JButton buttonModify = new JButton("Modify");/* Bouton pour modifier l'élément sélectionné */
  JButton buttonRemove = new JButton("Remove");/* Bouton pour effacer l'élément sélectionné */
  JButton buttonClear = new JButton("Clear");/* Bouton pour effacer la liste */
  /* actions */
  ActionListener al = (e) -> {
    if(e.getSource().equals(buttonAdd)) { /* Ajout */
      String t = text.getText();
      if(t.trim().isEmpty()) {
        JOptionPane.showMessageDialog(frame, "Please enter a text to insert");
        return;
      }
      listModel.addElement(t);
    } else if(e.getSource().equals(buttonModify)) { /* Modification */
      int idx = list.getSelectedIndex();
      if(idx == -1) {
        JOptionPane.showMessageDialog(frame, "Invalid index");
        return;
      }
      /* Récupération de la valeur. */
      String t = listModel.get(idx);
      /* Prompt pour la nouvelle valeur. */
      t = JOptionPane.showInputDialog(frame, "New value", t);
      if(t.trim().isEmpty()) {
        JOptionPane.showMessageDialog(frame, "Please enter a text to insert");
        return;
      }
      /* Modification de la valeur. */
      listModel.set(idx, t);
    } else if(e.getSource().equals(buttonRemove)) { /* Suppression */
      int idx = list.getSelectedIndex();
      if(idx == -1) {
        JOptionPane.showMessageDialog(frame, "Invalid index");
        return;
      }
      listModel.removeElementAt(idx);
    } else if(e.getSource().equals(buttonClear)) { /* Effacement */
      listModel.clear();
    }
  };
  buttonAdd.addActionListener(al);
  buttonModify.addActionListener(al);
  buttonRemove.addActionListener(al);
  buttonClear.addActionListener(al);
  /* placement des composants */
  JPanel content = (JPanel)frame.getContentPane();
  content.setLayout(new GridBagLayout());
  GridBagConstraints c = new GridBagConstraints();
  c.fill = GridBagConstraints.HORIZONTAL;
  c.gridx = 0;
  c.gridy = 0;
  c.gridwidth = 4;
  content.add(text, c);
  c.gridx = 0;
  c.gridy = 1;
  c.gridwidth = 1;
  content.add(buttonAdd, c);
  c.gridx = 1;
  c.gridy = 1;
  content.add(buttonModify, c);
  c.gridx = 2;
  c.gridy = 1;
  content.add(buttonRemove, c);
  c.gridx = 3;
  c.gridy = 1;
  content.add(buttonClear, c);
  c.fill = GridBagConstraints.BOTH;
  c.gridx = 0;
  c.gridy = 2;
  c.gridwidth = 4;
  content.add(new JScrollPane(list), c);
  /* Mise en forme de la fenêtre (taille + position à l'écran + affichage)*/
  frame.pack();
  frame.setLocationRelativeTo(null);
  frame.setVisible(true);
}


Ça c'est pour le problème, maintenant je ne sais pas si tu suis l'actu au niveau des API java mais Oracle recommande fortement d'utiliser JavaFX en lieu et place de Swing (Source).

Layediakite
Messages postés
2
Date d'inscription
lundi 20 août 2018
Dernière intervention
22 août 2018
-
OK merci beaucoup. je comprend maintenant , j'essaie votre techniques si ça marche pas , je publierai le code pour l'examination
De problème. Encore Mercie beaucoup
Commenter la réponse de Twinuts

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.