Un problème avec mon JTextfield et JList

Layediakite Messages postés 2 Date d'inscription lundi 20 août 2018 Statut Membre Dernière intervention 22 août 2018 - 20 août 2018 à 22:59
Layediakite Messages postés 2 Date d'inscription lundi 20 août 2018 Statut Membre 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

1 réponse

Twinuts Messages postés 5374 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 3 mars 2023 111
21 août 2018 à 09:07
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).

0
Layediakite Messages postés 2 Date d'inscription lundi 20 août 2018 Statut Membre Dernière intervention 22 août 2018
22 août 2018 à 11:22
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
0