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

AWT/Swing Java Discussion :

JTextPane pour CellRenderer


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2007
    Messages : 158
    Par défaut JTextPane pour CellRenderer
    Bonjour,

    J'utilise un JTextPane en tant que CellRenderer pour afficher des icones au milieu d'un texte dans une table. J'ai un problème avec ce composant. Aléatoirement, mes icones s'affichent, ne s'affichent pas ou je vois l'image des ressources non trouvées.
    Avez-vous une idée sur l'origine de ce problème bizarre?

    Merci d'avance

  2. #2
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Par défaut
    Citation Envoyé par apqmwnqmap Voir le message
    Avez-vous une idée sur l'origine de ce problème bizarre?
    Non, fait voir ton code.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2007
    Messages : 158
    Par défaut
    Mon code fait partie d'une grosse application. Alors je vais devoir prendre un peu de temps pour extraire l'essentiel.
    En attendant, si quelqu'un a une idée...

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2007
    Messages : 158
    Par défaut
    Voici un example pour illustrer le problème

    Nous avons le renderer suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    public class ColoredTextCellRendererExample extends JTextPane implements TableCellRenderer {
     
        public ColoredTextCellRendererExample() {
            super();
            setContentType("text/html");
            String iconUrl = IsieCommonResourceHandler.class.getResource("statparam/graphic/icons/data_little.gif").toString();
            setText("<html><font face=\"Arial\"><img src=\""+ iconUrl + "\"/><b><font color=\"rgb(37,123,198)\">TEXTE</font></b></font></html>");
        }
     
        public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
            return this;
        }
    }
    que nous positionnons sur une Jtable :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    table.getColumnModel().getColumn(0).setCellRenderer(new ColoredTextCellRendererExample());
    lorsqu'on exécute l'application, la table s'affiche avec des icônes ressource non trouvée.
    Si on redimensionne la colonne ou que l'on clique sur la ligne, la vraie icône apparaît.

    Merci pour votre aide.

  5. #5
    Membre Expert
    Avatar de natha
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 346
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 346
    Par défaut
    Les icônes sont loadées de façon "lazy". Donc quand tu affiches ton écran au départ elles sont en train d'être chargées mais pas encore fini.
    Pour évite ce phénomène tu peux peut-être essayer ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    java.net.URL imgUrl = IsieCommonResourceHandler.class.getResource("statparam/graphic/icons/data_little.gif");
    if (imgUrl != null) {
        ImageIcon ico = new ImageIcon(imgUrl);
        String iconUrl = IsieCommonResourceHandler.class.getResource("statparam/graphic/icons/data_little.gif").toString();
        // ...
    }

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2007
    Messages : 158
    Par défaut
    Merci pour ta réponse, mais ça n'a rien changé à notre problème...

    Peut etre que je pourrais mettre un sleep alors, mais je ne sais pas trop ou...

Discussions similaires

  1. Réponses: 1
    Dernier message: 06/12/2010, 17h13
  2. Template Proposals pour JTextPane/JTextArea
    Par araï dans le forum Composants
    Réponses: 2
    Dernier message: 01/11/2010, 11h06
  3. Réponses: 2
    Dernier message: 19/03/2008, 11h58
  4. mis à jour JTextPane pour Wrap/noWrap
    Par visiwi dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 20/02/2008, 16h37
  5. [JTextPane] conseils pour la colorisation syntaxique
    Par _KB_ dans le forum AWT/Swing
    Réponses: 8
    Dernier message: 27/06/2006, 10h01

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