Arraylist dans JTbable
Résolu/Fermé
Kilkenny95
Messages postés
151
Date d'inscription
lundi 24 septembre 2018
Statut
Membre
Dernière intervention
31 août 2020
-
Modifié le 8 févr. 2019 à 10:29
Kilkenny95 Messages postés 151 Date d'inscription lundi 24 septembre 2018 Statut Membre Dernière intervention 31 août 2020 - 8 févr. 2019 à 12:34
Kilkenny95 Messages postés 151 Date d'inscription lundi 24 septembre 2018 Statut Membre Dernière intervention 31 août 2020 - 8 févr. 2019 à 12:34
2 réponses
Jithel
Messages postés
843
Date d'inscription
mercredi 20 juin 2018
Statut
Membre
Dernière intervention
31 août 2021
171
8 févr. 2019 à 10:13
8 févr. 2019 à 10:13
Je ne vois que le code spécifique à la récupération des données SQL dans une arraylist qui fonctionne déjà bien de ce que je comprend de ton message. Merci de publier le code relatif à la fonctionnalité qui n'est pas correcte (arraylist dans tableau)
Jithel
Messages postés
843
Date d'inscription
mercredi 20 juin 2018
Statut
Membre
Dernière intervention
31 août 2021
171
8 févr. 2019 à 11:01
8 févr. 2019 à 11:01
En m'inspirant de cet exemple :
https://openclassrooms.com/fr/courses/6173501-debutez-la-programmation-avec-java?archived-source=26832
Je dirais que rowData ne doit pas être un tableau à une dimension qui contient la liste des données à la suite mais plutôt un tableau à deux dimensions où chaque élément est un tableau qui contient les données d'une ligne.
A priori, pas besoin de model dans cet exemple.
Tu ajoutes le JTable dans un JScrollBar qui est ajouté dans un JPanel mais le JPanel n'est ajouté dans aucun conteneur. Il faut ajouter la dernière ligne dans ton code :
https://openclassrooms.com/fr/courses/6173501-debutez-la-programmation-avec-java?archived-source=26832
Je dirais que rowData ne doit pas être un tableau à une dimension qui contient la liste des données à la suite mais plutôt un tableau à deux dimensions où chaque élément est un tableau qui contient les données d'une ligne.
A priori, pas besoin de model dans cet exemple.
Tu ajoutes le JTable dans un JScrollBar qui est ajouté dans un JPanel mais le JPanel n'est ajouté dans aucun conteneur. Il faut ajouter la dernière ligne dans ton code :
this.getContentPane().add(panel);
Kilkenny95
Messages postés
151
Date d'inscription
lundi 24 septembre 2018
Statut
Membre
Dernière intervention
31 août 2020
8 févr. 2019 à 11:26
8 févr. 2019 à 11:26
Comme ça ?
Ma fenêtre reste toujours vide
public class Tableau extends JFrame { public Tableau(){ this.setTitle("Tableau"); this.setSize(1000, 1000); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setLocationRelativeTo(null); this.setVisible(true); ProductDaoImpl pdi = new ProductDaoImpl(); JTable table = new JTable(); DefaultTableModel model = new DefaultTableModel(); Object[] columnsName = new Object[5]; columnsName[0] = "id"; columnsName[1] = "Nom"; columnsName[2] = "Localisation"; columnsName[3] = "Historique"; columnsName[4] = "Etat"; model.setColumnIdentifiers(columnsName); Object[][] rowData = new Object[pdi.selectAll().size()][5]; for (int i = 0; i < pdi.selectAll().size(); i++) { rowData[i][0] = pdi.selectAll().get(i).getId(); rowData[i][1] = pdi.selectAll().get(i).getNameProduct(); rowData[i][2] = pdi.selectAll().get(i).getLocalisation(); rowData[i][3] = pdi.selectAll().get(i).getHistorique(); rowData[i][4] = pdi.selectAll().get(i).getEtat(); model.addRow(rowData); } JTable jTable = new JTable((Object[][]) rowData, columnsName); table.setModel(model); System.out.println(pdi.selectAll().size()); JPanel panel = new JPanel(); JScrollPane pane = new JScrollPane(table); panel.add(pane, BorderLayout.CENTER); this.getContentPane().add(panel);
Ma fenêtre reste toujours vide
Jithel
Messages postés
843
Date d'inscription
mercredi 20 juin 2018
Statut
Membre
Dernière intervention
31 août 2021
171
>
Kilkenny95
Messages postés
151
Date d'inscription
lundi 24 septembre 2018
Statut
Membre
Dernière intervention
31 août 2020
8 févr. 2019 à 11:34
8 févr. 2019 à 11:34
Essaye avec ça :
public class Tableau extends JFrame { public Tableau(){ this.setTitle("Tableau"); this.setSize(1000, 1000); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setLocationRelativeTo(null); ProductDaoImpl pdi = new ProductDaoImpl(); JTable table = new JTable(); String[] columnsName = new String[5]; columnsName[0] = "id"; columnsName[1] = "Nom"; columnsName[2] = "Localisation"; columnsName[3] = "Historique"; columnsName[4] = "Etat"; Object[][] rowData = new Object[pdi.selectAll().size()][5]; for (int i = 0; i < pdi.selectAll().size(); i++) { rowData[i][0] = pdi.selectAll().get(i).getId(); rowData[i][1] = pdi.selectAll().get(i).getNameProduct(); rowData[i][2] = pdi.selectAll().get(i).getLocalisation(); rowData[i][3] = pdi.selectAll().get(i).getHistorique(); rowData[i][4] = pdi.selectAll().get(i).getEtat(); } JTable jTable = new JTable(rowData, columnsName); System.out.println(pdi.selectAll().size()); JScrollPane pane = new JScrollPane(jTable); this.getContentPane().add(pane); this.setVisible(true); } }
Kilkenny95
Messages postés
151
Date d'inscription
lundi 24 septembre 2018
Statut
Membre
Dernière intervention
31 août 2020
8 févr. 2019 à 12:34
8 févr. 2019 à 12:34
Merci 10000000 fois ça marche !!
8 févr. 2019 à 10:14