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
5371
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
1 avril 2022
112
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