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

Composants Java Discussion :

[JTree - JXTreeTable] les petits tirets et le fond.


Sujet :

Composants Java

  1. #1
    Rédacteur
    Avatar de eclesia
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    2 108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 108
    Points : 3 203
    Points
    3 203
    Par défaut [JTree - JXTreeTable] les petits tirets et le fond.
    Bonjour,

    j'aimerai régler un problème d'affichage sous windows et linux :
    je travail sur un composant amélioré de JXTreeTable.



    le probleme sous linux :
    comme on le voit sur l'image il y a les petits tirets qui representent l'arborescence entre les noeuds, sous linux ils ne sont pas visibles. comment les afficher?


    le probleme sous windows :
    quand on regarde la colonne des checkbox on constate que le fond ne suit pas le highlight (une ligne sur deux grise). Cela marche parfaitement sous linux.

    Comment recuperer la couleur du highlight sur cette ligne?

    le Renderer associé :
    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
     
    public class JXMapContextTableNodeRenderer implements TableCellRenderer{
     
        private static final Border noFocusBorder = new EmptyBorder(1, 1, 1, 1);
     
     
        /** Creates a new instance of ASMutableCellRenderer */
        public JXMapContextTableNodeRenderer() {
            super();
        }
     
        public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
            JPanel comp = new JPanel(new GridLayout(1,1));
     
            Object o = table.getValueAt(row,column);
     
     
            comp.setOpaque(true);
            if (isSelected) {
                comp.setForeground(table.getSelectionForeground());
                comp.setBackground(table.getSelectionBackground());
            } else {
                comp.setForeground(table.getForeground());
                comp.setBackground(table.getBackground());
            }
     
     
            if(o instanceof Boolean){
                JCheckBox c = new JCheckBox();
                c.setHorizontalAlignment(JLabel.CENTER);
                c.setBorderPainted(true);
                if (isSelected) {
                    c.setForeground(table.getSelectionForeground());
                    c.setBackground(table.getSelectionBackground());
                } else {
                    c.setForeground(table.getForeground());
                    c.setBackground(table.getBackground());
                }
                c.setSelected((value != null && ((Boolean)value).booleanValue()));
     
                if (hasFocus) {
                    c.setBorder(UIManager.getBorder("Table.focusCellHighlightBorder"));
                } else {
                    c.setBorder(noFocusBorder);
                }
     
                comp.add(c);
            }
     
            return comp ;
        }
     
    }
    Systèmes d'Informations Géographiques
    - Projets : Unlicense.science - Apache.SIS

    Pour un monde sans BigBrother IxQuick ni censure RSF et Les moutons

  2. #2
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    Si tu utilises le L&F GTK, bah c'est normal: ces tirets n'existent pas en GTK, donc le L&F reproduit par Swing est correct:



    c'est un GTKTreeview et il n'a pas de tirets

    Donc ton problème sous linux n'est pas un problème.


    Pour le deuxième problème, ça me semble venir du fait que tu utilises les Renderers traditionnels, qui rentrent en conflit avec tes higlighters. Alors que Swingx possède un mécanisme de renderers différents, se référe à la page suivante:

    http://wiki.java.net/bin/view/Javade...ngLabsRenderer
    Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.

  3. #3
    Rédacteur
    Avatar de eclesia
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    2 108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 108
    Points : 3 203
    Points
    3 203
    Par défaut
    dommage pour les tirets, je n'avais pas fait le rapprochement avec le L&F. tant pis je remet sur le metal dans ce cas. merci


    pour le renderer je vais voir ca.
    re-merci sinok
    Systèmes d'Informations Géographiques
    - Projets : Unlicense.science - Apache.SIS

    Pour un monde sans BigBrother IxQuick ni censure RSF et Les moutons

  4. #4
    Futur Membre du Club
    Inscrit en
    Avril 2007
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    Je me permet de poster la plutot que de créer un nouveau topic car j'ai le problème inverse : je voudrais supprimer ces petits tirets sous windows, mais j'arrive pas à appliquer la méthode d'un Jtree pour le faire

    Merci !

Discussions similaires

  1. [jtree] bas 2 petites question sur le jTree
    Par yupa dans le forum Composants
    Réponses: 2
    Dernier message: 20/01/2006, 17h51
  2. [Config PC de joueur] Les petits plus des experts
    Par Manopower dans le forum Ordinateurs
    Réponses: 22
    Dernier message: 30/09/2005, 11h11
  3. [JTree] Changer les icônes
    Par Spoutnik dans le forum Composants
    Réponses: 4
    Dernier message: 12/09/2005, 08h54
  4. Réponses: 3
    Dernier message: 27/07/2004, 12h01

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