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

2D Java Discussion :

JTable et Graphics2D pour l'affichage du contenu d'une cellule tp petite


Sujet :

2D Java

  1. #1
    Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 94
    Points : 44
    Points
    44
    Par défaut JTable et Graphics2D pour l'affichage du contenu d'une cellule tp petite
    Bonjour le forum,

    dans un tableau de mon appli, les colonnes sont parfois trop petites pour afficher tout le contenu des cellules et j'aimerais qu'au passage de ma souris sur les cellules, le contenu complet de ma cellule apparaisse...

    J'ai un souci et je ne vois pas d'où il vient : lors du passage de ma souris sur une cellule, tout le contenu ne s'affiche pas ...
    Pour un Jtree, cela fonctionne très bien : est-ce que quelqu'un peut m'aider?

    Thanks in advance,
    Bap

    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
    54
    55
     
    JComponent c = new JComponent() {
            public void paint(Graphics g) {
                boolean selected = table.isRowSelected(row);
                Component renderer = table.getCellRenderer(row, column).getTableCellRendererComponent(table, value, selected, true, row, column);
     
                c.setFont(table.getFont());
                Rectangle paintBounds = SwingUtilities.convertRectangle(table, bounds, this);
                SwingUtilities.paintComponent(g, renderer, this, paintBounds);
                if (selected) {
                    return;
                }
                g.setColor(Color.WHITE);
                ((Graphics2D) g).draw(paintBounds);
            }
        };
     
        /**
         * 
         * @param e
         */
        public void mouseEntered(MouseEvent e) {
            this.column = this.table.columnAtPoint(e.getPoint());
            this.row = this.table.rowAtPoint(e.getPoint());
            this.value = (String) this.table.getModel().getValueAt(this.row, this.column);
            this.bounds = this.table.getCellRect(this.row, this.column, true);
            if (!((DefaultTableCellRenderer) this.table.getCellRenderer(this.row, this.column)).getVisibleRect().contains(this.bounds)) {
                if (this.oldGlassPane == null) {
                    this.oldGlassPane = this.table.getRootPane().getGlassPane();
                    this.c.setOpaque(false);
                    this.table.getRootPane().setGlassPane(c);
                    this.c.setVisible(true);
                } else {
                    this.table.getRootPane().repaint();
                }
            } else {
                resetGlassPane();
            }
        }
     
        /**
         * 
         * @param e
         */
        public void mouseExited(MouseEvent e) {
            resetGlassPane();
        }
     
        private void resetGlassPane() {
            if (this.oldGlassPane != null) {
                this.c.setVisible(false);
                this.table.getRootPane().setGlassPane(this.oldGlassPane);
                this.oldGlassPane = null;
            }
        }

  2. #2
    Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 94
    Points : 44
    Points
    44
    Par défaut Jtree to Jtable
    Bonsoir,

    pour aider dans l'investigation de mon problème, voila ce qui fonctionne pour un Jtree et que j'aimerai convertir pour un Jtable :

    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
      //Get the path of the current node.
            this.path = this.tree.getPathForLocation(e.getX(), e.getY());
            //If there's no node, reset the current glass pane.
            if (this.path == null) {
                resetGlassPane();
            } else {
                this.row = this.tree.getRowForPath(this.path);
                this.bounds = this.tree.getPathBounds(this.path);
                //If a part of the node name is hiden, display the whole name.
                if (!this.tree.getVisibleRect().contains(this.bounds)) {
                    if (this.oldGlassPane == null) {
                        this.oldGlassPane = tree.getRootPane().getGlassPane();
                        //c is a bound containing the whole node name. Display it.
                        this.c.setOpaque(false);
                        this.tree.getRootPane().setGlassPane(c);
                        this.c.setVisible(true);
                    } else {
                        this.tree.getRootPane().repaint();
                    }
                } else {
                    //If the whole text of the node is visible, don't need a glass pane.
                    resetGlassPane();
                }
            }
    Bien évidemment les méthodes ne sont pas les même, ça serait trop facile !!
    Merci d'avance pour le coup de pouce,
    Bap

Discussions similaires

  1. Boutons pour naviguer dans le contenu d'une JTable
    Par Kagami dans le forum Débuter
    Réponses: 0
    Dernier message: 17/05/2015, 19h12
  2. blm avec l'affichage du contenue d'une matrice
    Par baal666 dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 12/02/2006, 21h45
  3. Réponses: 5
    Dernier message: 30/11/2005, 09h48
  4. [vb excel]Probleme affichage de contenu d'une array
    Par Mugette dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 26/09/2005, 16h01

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