Partage
  • Partager sur Facebook
  • Partager sur Twitter

Jtable qui ne s'affiche pas dans fenetre [EDIT]

Sujet résolu
    14 août 2017 à 18:48:45

    EDIT : (3eme message) Ma JTable était bien la mais cachée jusqu'à ce que je redimensionne manuellement. Une idée pour devoir éviter d’agrandir manuellement ma fenêtre à chaque fois ?  (j'ai essayé d’agrandir la taille de ma fenêtre mais ça ne marche)

    EDIT2 : Bon j'ai réussi, voir encore mon 3eme message, après quelques recherches de plus j'ai vu qu"il fallait utiliser panel.revalidate(); et tout marche parfaitement.

    Re bonjour à tous, j'ai travaillé suite à la petite aide que j'ai reçu de kulturman ce matin sur ce Thread https://openclassrooms.com/forum/sujet/entrer-les-donnees-dune-requete-dans-un-objet.

    Donc ici j'en suis arrivé au stade ou je dois lancer ma fenêtre et "normalement", le contenu de mon ArrayList doit pouvoir s'afficher dans cette JTable. Seulement la fenêtre s'ouvre mais elle est vide...

    Il y a bien quelque chose dans ma liste car quand je lui demande la taille, il m'affiche qu'il y a 1257 entrées dans ma liste.

    Alors c'est surement un paramètre que j'ai du oublier d'afficher ou d'appeler...

    package DisplayingLibrary;
    
    import java.awt.BorderLayout;
    import java.util.ArrayList;
    
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    import javax.swing.JScrollPane;
    import javax.swing.JTable;
    import javax.swing.table.DefaultTableModel;
    
    import com.sdz.connection.SdzConnection;
    
    import LibraryDAO.DAO;
    import LibraryTable.Auteur;
    import LibraryTable.Ouvrage;
    import LibraryTableDAO.AuteurDAO;
    import LibraryTableDAO.OuvrageDAO;
    
    public class DisplayLibrary extends JFrame{
        
    	  public DisplayLibrary() {
    		  super("Bind Jtable from MySql Database");
    		  setLocationRelativeTo(null);
    		  setSize(600, 400);
    		  setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		  setVisible(true);
    	  }
    
    	  public static void main(String[] args){
    		  
    		  JTable table = new JTable();
    		  DefaultTableModel model = new DefaultTableModel();
    		  Object[] columnsName = new Object[8];
    		  columnsName[0] = "Id";
    		  columnsName[1] = "Id Categorie";
    		  columnsName[2] = "Id Genre";
    		  columnsName[3] = "Id Auteur";
    		  columnsName[4] = "Code Ouvrage";
    		  columnsName[5] = "Ouvrage perdu vole";
    		  columnsName[6] = "Nom ouvrage";
    		  columnsName[7] = "Nom Auteur";
    		  
    		  model.setColumnIdentifiers(columnsName);
    		  
    		  Object[] rowData = new Object[8];
    		  
    		  DAO<Ouvrage> ouvrageDAO = new OuvrageDAO(SdzConnection.getInstance());
    ArrayList<Ouvrage> ouvrages = ouvrageDAO.getList();
    for(int i = 0; i < ouvrageDAO.getList().size(); i++) {
    rowData[0] = ouvrages.get(i).getId_ouvrage();
    rowData[1] = ouvrages.get(i).getCategorie_id();
    rowData[2] = ouvrages.get(i).getGenre_id();
    rowData[3] = ouvrages.get(i).getAuteur_id();
    rowData[4] = ouvrages.get(i).getCode_ouvrage();
    rowData[5] = ouvrages.get(i).getOuvrage_perdu_vole();
    rowData[6] = ouvrages.get(i).getNom_ouvrage();
    rowData[7] = ouvrages.get(i).getNom_auteur();

    model.addRow(rowData);

    } table.setModel(model); DisplayLibrary window = new DisplayLibrary(); JPanel panel = new JPanel(); panel.setLayout(new BorderLayout()); JScrollPane pane = new JScrollPane(table); panel.add(pane, BorderLayout.CENTER); window.setContentPane(panel); } }

     Derniere petite précision mais je ne pense pas que ça vienne de la puisque j'ai fais des recherches et visiblement ce n'est pas le cas, mais ma ligne de code

    public class DisplayLibrary extends JFrame

     me mais un message jaune en me disant "The serializable class DisplayLibrary does not declare a static final serialVersionUID field of type long"

    Voila tout, merci à vous!

    -
    Edité par UnagiV 14 août 2017 à 20:02:54

    • Partager sur Facebook
    • Partager sur Twitter
      14 août 2017 à 18:58:27

      Hellow ;)

      J'ai regardé rapidement ton code, et juste pour savoir... c'est quoi cette ligne :

       window.setContentPane(panel);

      C'est pas normalement :

      this.getContentPane().add(panel);

      ?

      Parce que pour moi, quand je met window, eclipse me signale qu'il ne connaît pas o_O...

      Johan

      edit: ah, j'avais pas vu le DisplayLibrary qui trainait... my bad ^^

      -
      Edité par NoaFayn 14 août 2017 à 19:01:19

      • Partager sur Facebook
      • Partager sur Twitter
        14 août 2017 à 18:59:13

        Bon petit corrigé, cela ne s'affichait mais il faut que j’agrandisse ma fenêtre manuellement pour que cela s'affiche, dut coup j'ai essayé de modifié la taille de ma fenêtre mais rien y fait, il faut toujours que je l'agrandisse manuellement, quelqu'un aurait une idée à ce propos ?

        EDIT

        Conservateur a écrit:

        Hellow ;)

        J'ai regardé rapidement ton code, et juste pour savoir... c'est quoi cette ligne :

         window.setContentPane(panel);

        C'est pas normalement :

        this.getContentPane().add(panel);

        ?

        Parce que pour moi, quand je met window, eclipse me signale qu'il ne connaît pas o_O...

        Johan



        alors j'ai essayé ton code

        window.getContentPane().add(panel);

        Et cela marche tout pareil comme avec le mien. Mais toujours avec ce problème de fenêtre que je dois agrandir.

        2eme Edit : Bon j'ai réussi à afficher il fallait simplement que j'utilise panel.revalidate(); tout à la fin.

        -
        Edité par UnagiV 14 août 2017 à 19:36:53

        • Partager sur Facebook
        • Partager sur Twitter

        Jtable qui ne s'affiche pas dans fenetre [EDIT]

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown