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 :

package et interface


Sujet :

Langage Java

  1. #1
    Membre éprouvé
    Avatar de c-top
    Profil pro
    Turu
    Inscrit en
    Septembre 2003
    Messages
    972
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Turu

    Informations forums :
    Inscription : Septembre 2003
    Messages : 972
    Points : 1 246
    Points
    1 246
    Par défaut package et interface
    J'ai un package A, et j'aimerais dans ce package implémenter une interface de l'API standard: TableCellRenderer.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    package A
     
    public class TableModel implements TableCellRenderer{
    ...
    le code
    ...
    }
    Quand je fais ça le compilo me renvoie une erreur en me disant que ma classe doit être abstraite.
    Alors que si j'enlève package A, plus d'erreur tout roule.

    Donc ma question: avec deux package A et B comment à partir d'une classe du package B implémenter une interface du package A ?

  2. #2
    Membre actif Avatar de fumiste972
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Février 2003
    Messages
    228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Février 2003
    Messages : 228
    Points : 291
    Points
    291
    Par défaut
    Slt,

    Justement pour implementer la classe d'un autre package il faut importer le package dans lekel est declare ta classe. Donc je ne pense pas que l'erreur vienne de ton inportation. Tu peux afficher le message d'erreur stp.
    "L'ignorance, c'est la béatitude, ce qui explique peut-être pourquoi tout le monde sourit"
    Pensez au tag , ca évite de se galérer pour rien.

  3. #3
    Membre éprouvé
    Avatar de c-top
    Profil pro
    Turu
    Inscrit en
    Septembre 2003
    Messages
    972
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Turu

    Informations forums :
    Inscription : Septembre 2003
    Messages : 972
    Points : 1 246
    Points
    1 246
    Par défaut
    Je réalise bien l'import en faisant
    import javax.swing.table.*;

    puisque je veux implémenter TableCellRenderer

    L'erreur:
    class not abstract and does not override abstract method getTableCellRendererComponent(....).


    La méthode getTableCellRendererComponent est la seule méthode à implémenter...

  4. #4
    Membre averti Avatar de dazz_x
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    269
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Mars 2006
    Messages : 269
    Points : 328
    Points
    328
    Par défaut
    et tu l'as implémentée, cette fameuse méthode ?
    La différence entre la théorie et la pratique est plus mince en théorie qu'en pratique

  5. #5
    Membre éprouvé
    Avatar de c-top
    Profil pro
    Turu
    Inscrit en
    Septembre 2003
    Messages
    972
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Turu

    Informations forums :
    Inscription : Septembre 2003
    Messages : 972
    Points : 1 246
    Points
    1 246
    Par défaut
    Oui, je l'ai implémenté

    Je n'ai pas regardé le source de cette interface mais à mon avis il est possible qu'elle ne soit pas déclarée public et donc par défaut elle est protected donc impossible de l'implémenter à partir d'un autre package....

  6. #6
    Membre éprouvé
    Avatar de c-top
    Profil pro
    Turu
    Inscrit en
    Septembre 2003
    Messages
    972
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Turu

    Informations forums :
    Inscription : Septembre 2003
    Messages : 972
    Points : 1 246
    Points
    1 246
    Par défaut
    Eh si elle est bien public, alors là un truc m'échappe

    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
     
    public interface TableCellRenderer {
     
        /**
         *  Returns the component used for drawing the cell.  This method is
         *  used to configure the renderer appropriately before drawing.
         *
         * @param   table           the <code>JTable</code> that is asking the
         *                          renderer to draw; can be <code>null</code>
         * @param   value           the value of the cell to be rendered.  It is
         *                          up to the specific renderer to interpret
         *                          and draw the value.  For example, if
         *                          <code>value</code>
         *                          is the string "true", it could be rendered as a
         *                          string or it could be rendered as a check
         *                          box that is checked.  <code>null</code> is a
         *                          valid value
         * @param   isSelected      true if the cell is to be rendered with the
         *                          selection highlighted; otherwise false
         * @param   hasFocus        if true, render cell appropriately.  For
         *                          example, put a special border on the cell, if
         *                          the cell can be edited, render in the color used
         *                          to indicate editing
         * @param   row             the row index of the cell being drawn.  When
         *                          drawing the header, the value of
         *                          <code>row</code> is -1
         * @param   column          the column index of the cell being drawn
         */
        Component getTableCellRendererComponent(JTable table, Object value,
    					    boolean isSelected, boolean hasFocus,
    					    int row, int column);
    }
    Y-a-t-il une ame capabla de me donner une réponse pour implémenter cette classe à partir d'un autre package ?

  7. #7
    Membre averti Avatar de dazz_x
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    269
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Mars 2006
    Messages : 269
    Points : 328
    Points
    328
    Par défaut
    non, je viens de regarder dans la doc
    Javadoc a dit :
    public interface TableCellRenderer

    This interface defines the method required by any object that would like to be a renderer for cells in a JTable.

    Method Summary
    Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column)
    Returns the component used for drawing the cell.


    Method Detail
    getTableCellRendererComponent

    Component getTableCellRendererComponent(JTable table,
    Object value,
    boolean isSelected,
    boolean hasFocus,
    int row,
    int column)
    [Edit : grilled as the pingouin survoling a volcan]
    La différence entre la théorie et la pratique est plus mince en théorie qu'en pratique

  8. #8
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,

    Citation Envoyé par c-top
    Je n'ai pas regardé le source de cette interface mais à mon avis il est possible qu'elle ne soit pas déclarée public et donc par défaut elle est protected donc impossible de l'implémenter à partir d'un autre package....
    Une classe/interface ne peut pas être protected (mis à part pour les classes internes) : cela n'aurait aucun sens. Au pire elle est "package-view" mais dans ce cas elle ne serait pas dans l'API et tu n'aurais pas cette erreur...

    Donc : montre ton code ! Tu dois surement ne pas implémenter la bonne méthode...

    a++

  9. #9
    Membre éprouvé
    Avatar de c-top
    Profil pro
    Turu
    Inscrit en
    Septembre 2003
    Messages
    972
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Turu

    Informations forums :
    Inscription : Septembre 2003
    Messages : 972
    Points : 1 246
    Points
    1 246
    Par défaut
    Ok, j'ai résolu le problème

    Apparement quand on se trouve dans un package, il faut importer l'interface seule pour pouvoir l'implémenter, on ne peut pas se contenter d'appeler
    javax.swing.table.*;

    il me fallait
    javax.swing.table.TableCellRenderer;

  10. #10
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par c-top
    Apparement quand on se trouve dans un package, il faut importer l'interface seule pour pouvoir l'implémenter, on ne peut pas se contenter d'appeler
    javax.swing.table.*;

    il me fallait
    javax.swing.table.TableCellRenderer;
    C'est vraiment bizarre ton truc

    Tu utilises quoi comme EDI / Compilateur ?

  11. #11
    Membre éprouvé
    Avatar de c-top
    Profil pro
    Turu
    Inscrit en
    Septembre 2003
    Messages
    972
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Turu

    Informations forums :
    Inscription : Septembre 2003
    Messages : 972
    Points : 1 246
    Points
    1 246
    Par défaut
    Tu as raison c'était trop bizarre alors j'ai pris le temps de regarder ça de près...
    Et en fait j'ai raconté n'importe quoi....

    J'avais en fait un conflit de nom de package et quand je voulais implémenter l'interface TableCellRenderer depuis ce package cela me causait une erreur.
    Je m'en suis aperçu car en implémentant cette interface depuis une classe isolée pas de problème alors j'ai essayé par hasard le fameux et la miracle plus d'erreur à la compilation.

    J'ai donc changé le nom du package et tout est OK....

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 29/08/2014, 19h33
  2. Séparation des packages: où mettre les interfaces ?
    Par Antoine_935 dans le forum Débuter avec Java
    Réponses: 4
    Dernier message: 01/06/2009, 23h22
  3. Package et interface graphique
    Par maryo dans le forum R
    Réponses: 1
    Dernier message: 25/03/2008, 10h07
  4. [package][swing] Interface graphique
    Par _KB_ dans le forum AWT/Swing
    Réponses: 9
    Dernier message: 06/04/2006, 19h38
  5. Interface idl et package java
    Par canou94 dans le forum CORBA
    Réponses: 2
    Dernier message: 09/11/2005, 09h32

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