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

  1. #1
    Membre du Club 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
    Points : 45
    Points
    45
    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 confirmé Avatar de Satch
    Homme Profil pro
    Hypnothérapeute - Magicien
    Inscrit en
    Mars 2004
    Messages
    498
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Suisse

    Informations professionnelles :
    Activité : Hypnothérapeute - Magicien

    Informations forums :
    Inscription : Mars 2004
    Messages : 498
    Points : 645
    Points
    645
    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 éclairé Avatar de sozie9372
    Inscrit en
    Mai 2005
    Messages
    713
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mai 2005
    Messages : 713
    Points : 724
    Points
    724
    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 du Club 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
    Points : 45
    Points
    45
    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 éclairé Avatar de sozie9372
    Inscrit en
    Mai 2005
    Messages
    713
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mai 2005
    Messages : 713
    Points : 724
    Points
    724
    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 chevronné
    Avatar de Deadpool
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    1 312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 1 312
    Points : 2 011
    Points
    2 011
    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 du Club 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
    Points : 45
    Points
    45
    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.

  8. #8
    Membre éclairé Avatar de sozie9372
    Inscrit en
    Mai 2005
    Messages
    713
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mai 2005
    Messages : 713
    Points : 724
    Points
    724
    Par défaut
    Le deuxième code peut se trouver dans une classe à part ou dans la même, il te montrait juste l'intégration dans une fenêtre du premier...

  9. #9
    Membre confirmé Avatar de Satch
    Homme Profil pro
    Hypnothérapeute - Magicien
    Inscrit en
    Mars 2004
    Messages
    498
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Suisse

    Informations professionnelles :
    Activité : Hypnothérapeute - Magicien

    Informations forums :
    Inscription : Mars 2004
    Messages : 498
    Points : 645
    Points
    645
    Par défaut
    Pour préciser autre chose sur les imports.

    Quand on fait un import, on n'importe pas véritablement une classe ou un package dans son code.
    On n'importe en fait que le nom, de qui permet de ne pas écrire le nom complet de la classe qu'on veut utiliser.

    Le fait de faire des imports augmente un poil le temps de compilation, mais le temps d'execution, lui, reste le même.
    Donc à utiliser sans se poser de questions, sauf dans le cas ou on est sur un gros projet qui met une dizaine de minutes à compiler.

    Mais en règle général, autant prendre les bonnes habitudes. A savoir n'importer que la classe qu'on utilise et donc ne pas faire d'import du genre "qqch.*"

  10. #10
    Membre éclairé Avatar de sozie9372
    Inscrit en
    Mai 2005
    Messages
    713
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mai 2005
    Messages : 713
    Points : 724
    Points
    724
    Par défaut
    +1 et puis c'est plus propre...

  11. #11
    Membre du Club 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
    Points : 45
    Points
    45
    Par défaut Vraiment désolé Sozie9372
    Sozie9372, je suis vraiment désolé mais je n'arrive pas a faire fonctionner ton code. J'ai mis ceci dans Matable.java

    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
    import javax.swing.*;
    import javax.swing.table.TableModel;
    import javax.swing.event.*;
    import java.awt.Dimension;
    import java.awt.event.*;
     
    public class Matable {
     
    	private DefaultTableModel model;
    	private JTable table;
     
    	public Matable(){
       	model = new DefaultTableModel();
       	table = new Jtable(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);
       		}
    	}
            public static void main(String[] argv)
             {
               Matable t = new Matable();
               monPanel.add(t.build());
             }   
    }
    Mais cela génére des erreurs.
    Est-ce qu'il serait possible STP de me dire ou se situent les erreurs ?
    Et également des imports que j'ai réellement besoin ?
    D'avance merci

  12. #12
    Membre éclairé Avatar de sozie9372
    Inscrit en
    Mai 2005
    Messages
    713
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mai 2005
    Messages : 713
    Points : 724
    Points
    724
    Par défaut
    Tiens, prêt à l'emploi... Mais il va fallort que tu étudies un peu... Car je pense que tu as des lacunes... Ca viendra !
    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
     
    import javax.swing.JComponent;
    import javax.swing.JFrame;
    import javax.swing.JScrollPane;
    import javax.swing.JTable;
    import javax.swing.table.DefaultTableModel;
     
    public class Matable {
     
    	private DefaultTableModel model;
     
    	private JTable table;
     
    	public Matable() {
    		model = new DefaultTableModel();
    		table = new JTable(model);
    		initTable();
    	}
     
    	public JComponent buildTable() {
    		return new JScrollPane(table);
    	}
     
    	private void initTable() {
    		Object[] intArray = new Object[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);
    		}
    	}
     
    	public static void main(String[] argv) {
    		JFrame f = new JFrame("Coucou");
    		Matable t = new Matable();
    		f.getContentPane().add(t.buildTable());
    		f.pack();
    		f.setVisible(true);
     f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    	}
    }
    EDIT : Rajout de l'exit on close

  13. #13
    Membre du Club 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
    Points : 45
    Points
    45
    Par défaut C'est super
    Je te remercie vivement.
    Cela va, comme tu le dis, me permettre d'étudier dans le détail et peut-etre faire de moi un pro de Java :-)
    Encore merci à toi et à tous les protagonistes et intervenants de ce site.
    Longue vie à ce forum

+ 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