web-dev-qa-db-fra.com

Comment ajouter une ligne de données à Jtable à partir de valeurs reçues de jtextfield et de zones de liste déroulante

J'ai un formulaire JFrame qui a JTextFields, JCombobox etc. et je peux recevoir ces valeurs dans des variables et maintenant je veux ajouter les données reçues à JTable dans une nouvelle ligne lorsque l'utilisateur clique sur Ajouter ou quelque chose comme ça.

J'ai créé JTable à l'aide de net-beans, le problème est quel serait le code pour ajouter des données de ces variables aux lignes de la table. Un exemple de base serait apprécié. J'ai essayé de nombreux exemples et j'ai ajouté le code à ActionListener du JButton mais rien ne se passe. Les exemples que j'ai essayés le sont. Comment ajouter une ligne dans JTable? et Comment ajouter des lignes à JTable avec la méthode AbstractTableModel?

Toute aide serait appréciée.

14
Nawaz

Tutoriel boiteux de Peeskillet pour travailler avec JTables dans Netbeans GUI Builder

  • Définissez les en-têtes de colonne du tableau
    1. Mettez en surbrillance le tableau en mode Création, puis accédez au volet des propriétés tout à droite. Doit être un onglet qui dit "Propriétés". Assurez-vous de mettre en surbrillance le tableau et non le volet de défilement qui l'entoure, ou l'étape suivante ne fonctionnera pas
    2. Clique sur le ... bouton à droite de la propriété modèle. Une boîte de dialogue devrait apparaître.
    3. Définissez les lignes sur 0, définissez le nombre de colonnes souhaitées et leurs noms.
  • Ajoutez un bouton au cadre quelque part. Ce bouton sera cliqué lorsque l'utilisateur sera prêt à envoyer une ligne

    1. Faites un clic droit sur le bouton et sélectionnez Events -> Action -> actionPerformed
    2. Vous devriez voir du code semblable au code généré automatiquement suivant

      private void jButton1ActionPerformed(Java.awt.event.ActionEvent) {}
      
  • Le jTable1 aura un DefaultTableModel. Vous pouvez ajouter des lignes au modèle avec vos données

    private void jButton1ActionPerformed(Java.awt.event.ActionEvent) {
        String data1 = something1.getSomething();
        String data2 = something2.getSomething();
        String data3 = something3.getSomething();
        String data4 = something4.getSomething();
    
        Object[] row = { data1, data2, data3, data4 };
    
        DefaultTableModel model = (DefaultTableModel) jTable1.getModel();
    
        model.addRow(row);
    
        // clear the entries.
    }
    

Ainsi, pour chaque ensemble de données, comme un couple de champs de texte, une zone de liste déroulante et une case à cocher, vous pouvez collecter ces données chaque fois que vous appuyez sur le bouton et les ajouter sous forme de ligne au modèle.

25
Paul Samsotha

vous pouvez utiliser ce code comme modèle, veuillez le personnaliser selon vos besoins.

DefaultTableModel model = new DefaultTableModel();
List<String> list = new ArrayList<String>();

list.add(textField.getText());
list.add(comboBox.getSelectedItem());

model.addRow(list.toArray());

table.setModel(model);

ici DefaultTableModel est utilisé pour ajouter des lignes dans JTable, vous pouvez obtenir plus d'informations ici .

8
eatSleepCode
String[] tblHead={"Item Name","Price","Qty","Discount"};
DefaultTableModel dtm=new DefaultTableModel(tblHead,0);
JTable tbl=new JTable(dtm);
String[] item={"A","B","C","D"};
dtm.addRow(item);

Ici, c'est la solution.

5
Udeesha Induwara