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

Langage Java Discussion :

Ou sont les fichiers d'import ?


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de mbar
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 60
    Par défaut Ou sont les fichiers d'import ?
    Bonjour,
    Je débute en Java et j'utilise la JDK1.5.0_06.
    J'ai un fichier.java qui contient les imports suivants :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    import javax.swing.*;
    import javax.swing.table.TableModel;
    import javax.swing.event.*;
    import java.awt.Dimension;
    import java.awt.event.*;
    La variable classpath n'étant pas définie, ou peut-on trouver les informations qui sont indiqués dans l'import de javax.swing.table.TableModel ?

    et est-ce que le fait de déclarer javax.swing.* importe la totalité des informations et dans ce cas, il serait inutile de déclarer javax.swing.table.TableModel non ? A moins que * ne veut pas dire "tout ce qui suit" ?

    D'avance merci

  2. #2
    Membre éprouvé Avatar de Satch
    Homme Profil pro
    Hypnothérapeute - Magicien
    Inscrit en
    Mars 2004
    Messages
    500
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Suisse

    Informations professionnelles :
    Activité : Hypnothérapeute - Magicien

    Informations forums :
    Inscription : Mars 2004
    Messages : 500
    Par défaut
    import javax.swing.* va importer toutes les classes qui sont dans le package javax.swing.

    TableModel se trouve dans le package javax.swing.table, et n'est donc pas importé avec javax.swing.*

    Si tu veux des informations sur TableModel regarde sa javadoc, soit dans la source, soir sur la doc en ligne

  3. #3
    Membre émérite Avatar de sozie9372
    Inscrit en
    Mai 2005
    Messages
    713
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2005
    Messages : 713
    Par défaut
    En fait tu peux consideré les packages comme une arborescence de dossiers. Lorsque tu fais un import, il n'y a pas de récursivité donc pas de recherche dans les sous dossiers. import javax.swing.*; importera uniquement les classes java se trouvant dans le "dossier" swing. en revanche tu ne verras pas le contenu du "dossier" "table" qui pourtant en fait partie...
    Est-ce clair ?

  4. #4
    Membre confirmé Avatar de mbar
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 60
    Par défaut Toujours un peu perdu
    Merci beaucoup pour vos réponses.
    En fait, je veux tous simplement créer un tableu (une grille) de 50 x 50 petit carreau avec dans les entêtes de lignes et colonnes les nombres de 1 à 50.
    Je sais qu'il faut que j'importe javax.swing.table mais est-ce vraiment nécessaire d'importer Tablemodel ?
    Si quelqu'un possède déjà un exmple de code, je suis preneur. D'avance merci

  5. #5
    Membre émérite Avatar de sozie9372
    Inscrit en
    Mai 2005
    Messages
    713
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2005
    Messages : 713
    Par défaut
    Le model est le conteneur d'informations de ta table. La table se charge uniquement d'afficher.
    Pour ton cas, tu peux essayer de faire un truc comme ca :
    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
     
    public class Matable {
     
    private DefaultTableModel model;
    private JTable table;
     
    public Matable(){
       model = new DefaultTableModel();
       table = new Jtabel(model);
       initTable();
    }
     
    public JComponent buildTable(){
       return new JScrollPane(table);
    }
     
    private void initTable(){
       int[] intArray = new int[50];
       for(int i = 0 ; i < 50 ; i++) {
          model.addColumn(String.valueOf(i+1));
          intArray[i] = i;
       }
       for(int i = 0 ; i < 50 ;i++) { 
          model.addRow(intArray);
       }
    }
    }
    et tu l'appelles comme ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Matable t = new Matable();
    monPanel.add(t.build());
    J'ai pas testé mais ca devrait ressembler a ca... Y'a d'autres méthodes bien sûr !

  6. #6
    Membre éprouvé
    Avatar de Deadpool
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    1 312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 1 312
    Par défaut
    Une chose importante à noter, les instructions import sont en fait facultatives et ne constituent qu'un raccourci d'écriture.

    En effet, normalement pour utiliser une classe située dans un package particulier, il faut écrire le nom complet de la classe c'est à dire son nom préfixé du package auquel elle appartient.

    Exemple de la classe Date situé dans le package java.util

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java.util.Date aDate = new java.util.Date();
    Toutefois il s'avére vite embarrassant d'avoir à écrire constamment le chemin complet d'une classe. L'instruction import permet de s'affranchir de cette contrainte:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    import java.util.Date;
     
    [...]
     
     
    Date aDate = Date();
    Un cas particulier existe. Les classes appartenant au package java.lang qui sont les classes de base du langage sont implicitement importées de sorte qu'il est inutile d'écrire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    import java.lang.*;

  7. #7
    Membre confirmé Avatar de mbar
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 60
    Par défaut Je suis vraiment novice....
    J'ai rajouté devant le premier source les lignes :
    import javax.swing.*;
    import javax.swing.table.TableModel;
    import javax.swing.event.*;
    import java.awt.Dimension;
    import java.awt.event.*;
    je le nommé Matable.java et quand je fais javac Matable.java j'ai des messages d'erreur avec DefaultTableModel.
    Est-ce que le deuxième code je dois le mettre dans une fonction Main() ? et dans un autre fichier .java ? ou dans le même ?
    D'avance merci.

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

Discussions similaires

  1. Où sont les fichiers coredump ?
    Par setsuko974 dans le forum Apple
    Réponses: 3
    Dernier message: 05/08/2007, 12h15
  2. Où sont les fichiers UI des exemples de Qt ?
    Par randriano dans le forum Qt
    Réponses: 7
    Dernier message: 13/07/2007, 22h44
  3. Quels sont les fichiers logs les plus pertinents sous Linux/Unix?
    Par 3wicha dans le forum Administration système
    Réponses: 2
    Dernier message: 04/06/2007, 22h14
  4. Mysql ou sont les fichiers?
    Par djshaker dans le forum Installation
    Réponses: 2
    Dernier message: 25/02/2006, 09h31

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