IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Interfaces Graphiques en Java Discussion :

Afficher ma classe JTable dans un JDesktopPane


Sujet :

Interfaces Graphiques en Java

  1. #1
    Nouveau membre du Club Avatar de ImBehoRE
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2018
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : Polynésie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2018
    Messages : 23
    Points : 31
    Points
    31
    Par défaut Afficher ma classe JTable dans un JDesktopPane
    Bonjour,

    Alors voilà, j'ai 3 classe qui me permettent d'afficher un tableau de données d'un table de ma DB.
    Voici ce que j'obtiens :
    Nom : afficheTable.JPG
Affichages : 271
Taille : 49,6 Ko

    Mon code pour ceci :

    ma classe Main
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    public class Main {
     
     
     
        public static void main(String[] args)
      {
        Connection connection = getConnection();
        try
        {
            Statement st = connection.createStatement( ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY );
     
            ResultSet rs = st.executeQuery( "SELECT avarie.id_avarie, equipement.des_eqpmt, avarie.des_avarie, avarie.prio_dir, avarie.prio_resp, avarie.prio_agent, avarie.prio_man,avarie.prio_emis,avarie.date_creation FROM `avarie` INNER JOIN `equipement` ON avarie.id_eqpmt = equipement.id_eqpmt" );
            ResultSetTableModel rtm = new ResultSetTableModel( rs );
     
            TablePanel tablePanel = new TablePanel( rtm );
     
            JFrame mainFrame = new JFrame( "Affiche table " );
            mainFrame.add( tablePanel, BorderLayout.CENTER );
            mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE );
            mainFrame.setSize( 640, 480 );
            mainFrame.setVisible( true );
        } 
        catch ( SQLException e )
        {
          // TODO Auto-generated catch block
          e.printStackTrace();
        }
      }
     
     
     
      public static Connection getConnection()
        {
          Connection connection = null;
          boolean ok = false;
     
          //--- chargement en mémoire du pilote
          try
         {
           Class.forName( PILOTE );
           ok = true;
         } 
         catch ( ClassNotFoundException e )
         {
           System.out.println( "ERREUR chargement du pilote: pilote non trouvé" );
           e.printStackTrace();
         }
     
         //--- connexion à la base de données
         if ( ok )
         {
           try
           {
             connection = DriverManager.getConnection( URL_DATABASE,"root","" );
           }
           catch ( SQLException e )
           {
             System.out.println( "ERREUR de connexion à la base de données: " + URL_DATABASE );
             e.printStackTrace();
           }
         }
     
          return connection;
        }
     
        //--- attributs
        private static final String PILOTE = "com.mysql.jdbc.Driver";
        private static final String URL_DATABASE = "jdbc:mysql://localhost:3306/projetmcapp";
    }
    ma classe ResultSetTableModel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    public class ResultSetTableModel extends AbstractTableModel {
        public ResultSetTableModel( ResultSet resultSet )
      {
        this.resultSet = resultSet;
     
        try 
        {
          this.resultSetMetaData = resultSet.getMetaData();
        }
        catch (SQLException e) 
        {
          // TODO Auto-generated catch block
          e.printStackTrace();
        }
      }
      @Override
      public int getColumnCount()
      {
    	try 
        {
          return resultSetMetaData.getColumnCount();
        } 
        catch (SQLException e) 
        {
          // TODO Auto-generated catch block
          e.printStackTrace();
          return 0;
        }
      }
     
      @Override
      public int getRowCount()
      {
    	try
        {
          resultSet.last();
          return resultSet.getRow();
        } 
    	catch (SQLException e)
        {
          // TODO Auto-generated catch block
          e.printStackTrace();
          return 0;
        }
      }
     
      @Override
      public Object getValueAt(int rowIndex, int columnIndex) 
      {
        try
        {
          resultSet.absolute( rowIndex + 1 );
          return resultSet.getObject(columnIndex + 1 );
        } 
        catch (SQLException e)
        {
          // TODO Auto-generated catch block
          e.printStackTrace();
          return null;
        }
      }
     
      @Override
      public String getColumnName( int column )
      {
        try 
        {
          return resultSetMetaData.getColumnName( column + 1 );
        } 
        catch (SQLException e) 
        {
          // TODO Auto-generated catch block
          e.printStackTrace();
          return "";
        }
      }
     
      private ResultSet resultSet;
      private ResultSetMetaData resultSetMetaData;
     
    }
    et ma classe TablePanel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    public class TablePanel extends JPanel {
        public TablePanel( TableModel model )
      {
        table = new JTable( model );
        //les parametres de la table 
        setLayout( new BorderLayout() );
        // Ajout de la table dans un JScrollPane, dans le JPanel + border Layout center  
        add( new JScrollPane( table ), BorderLayout.CENTER );
     
     
      }
      private JTable table;
    }
    Je n'arrive pas à faire en sorte d'ajouter mon tableau dans un JDesktopPane présent dans un "JFrame Form" dans lequel je rajoute le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Main m = new Main();
    //DeskList c'est le nom de mon JDesktopPane
    DeskList.add(m);
    m.setVisible(true);
    et en rajoutant un "extends JInternalFrame" pour ma class Main.

    Je ne sais plus quoi faire

    Merci pour ceux qui prendrons le temps de m'aider.

  2. #2
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 073
    Points : 7 978
    Points
    7 978
    Par défaut
    Le ContentPane de la JFrame principale, doit être un composant de type DesktopPane.

    Ensuite dans le DesktopPane, tu pourras rajouter des JInternalFrame.

    Je ne sais pas si c'est plus claire ainsi ?
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Nouveau membre du Club Avatar de ImBehoRE
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2018
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : Polynésie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2018
    Messages : 23
    Points : 31
    Points
    31
    Par défaut Résolue
    Citation Envoyé par wax78 Voir le message
    Le ContentPane de la JFrame principale, doit être un composant de type DesktopPane.

    Ensuite dans le DesktopPane, tu pourras rajouter des JInternalFrame.

    Je ne sais pas si c'est plus claire ainsi ?
    Merci pour ton aide pour mes deux discussions, ça m'a permis de trouver des solution

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Afficher les .class dans Eclipse
    Par Jehuty57 dans le forum Eclipse
    Réponses: 2
    Dernier message: 17/11/2009, 09h10
  2. Réponses: 2
    Dernier message: 11/12/2007, 14h03
  3. [JTABLE] afficher les retours chariots dans une cellule
    Par d_token dans le forum Composants
    Réponses: 3
    Dernier message: 11/09/2006, 13h03
  4. Comment afficher un Set(COLLECTION) DANS UNE jTABLE
    Par taf dans le forum Composants
    Réponses: 3
    Dernier message: 05/04/2006, 11h53
  5. [JTable][RadioButton]Afficher groupe de boutons dans JTable
    Par leminipouce dans le forum Composants
    Réponses: 11
    Dernier message: 21/02/2006, 17h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo