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 :

Utilisation d'un tooltiptext sur une cellule ..


Sujet :

AWT/Swing Java

  1. #1
    Membre régulier
    Inscrit en
    Février 2005
    Messages
    122
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 122
    Points : 110
    Points
    110
    Par défaut Utilisation d'un tooltiptext sur une cellule ..
    Alors voilà,

    J'ai une table bien remplie et je voudrais afficher un panneau genre tooltiptext lorque je clique sur une certaine cellule.
    J'ai cherché, mais je vois pas quel objet utiliser pour faire cela.
    Je suis ouvert à toute suggestion alors n'hesitez pas, allez-y de bon coeur

    Merci d'avance.

  2. #2
    Expert éminent sénior
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Points : 21 324
    Points
    21 324
    Par défaut
    Citation Envoyé par mitje
    Alors voilà,

    J'ai une table bien remplie et je voudrais afficher un panneau genre tooltiptext lorque je clique sur une certaine cellule.
    J'ai cherché, mais je vois pas quel objet utiliser pour faire cela.
    Je suis ouvert à toute suggestion alors n'hesitez pas, allez-y de bon coeur

    Merci d'avance.
    Tu veut afficher sur une seule cellule ou alors c'est égal ?

    Tu pourrais employer une petite JWIndow tout simplement.

  3. #3
    Membre régulier
    Inscrit en
    Février 2005
    Messages
    122
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 122
    Points : 110
    Points
    110
    Par défaut
    merci wichtounet pour ta reponse,

    je voudrais l'afficher sur une cellule, lorsque je clique dessus et ce pour toute les cellules d'une table.
    Je voudrais utiliser un objet le plus leger possible car je ne veux afficher que du texte dans ce tooltip.
    J'avais aussi pensé à une JWindow mais le composant me parait un peu complexe pour l'utilisation que je veux en faire.
    Ce que je voudrais c'est l'equivalent du tooltiptext pour un bouton, mais pour les cellules d'un tableau.

    En fait, s'il existe un objet pour créer les tooltip des boutons, c'est celui-ci qui m'intêresse.

    Je vais jeter un coup d'oeil du coté du code source de la classe JButton pour voir si je trouve quelques chose.

  4. #4
    Membre habitué Avatar de minus
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    153
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 153
    Points : 177
    Points
    177
    Par défaut
    Si tu as des JButton pour créer un tooltip ya rien de plus simple ... tu fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    JButton monBouton = new JButton("Envoyer");
    monBouton.setToolTipText("blablabla");

    Et sans allé jusqu'à regarder le code source des JButton, tu va jeter un oeil a la javadoc c'est beaucoup plus simple
    -->http://javasearch.developpez.com/j2s...g/JButton.html

    (setToolTipText est une methode heritée de JComponent)

  5. #5
    Membre éclairé
    Avatar de bbclone
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 537
    Points : 704
    Points
    704
    Par défaut
    JToolTip est le component utiliser pour afficher les tooltip.

    si tu a un JTable et tu veut des tooltip different par cellule tu dois mettre un tooltip sur le renderer.
    chaque cellule de JTable utilise un Component pour afficher la donne de la table a cette position. ca peut etre n'importe quel JComponent.

  6. #6
    Membre régulier
    Inscrit en
    Février 2005
    Messages
    122
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 122
    Points : 110
    Points
    110
    Par défaut
    merci bb pour ta reponse,

    Citation Envoyé par bbclone
    JToolTip est le component utiliser pour afficher les tooltip.
    si tu a un JTable et tu veut des tooltip different par cellule tu dois mettre un tooltip sur le renderer.
    Pourrait tu detailler un petit peu, je vois pas ce que tu veux dire.

    Citation Envoyé par bbclone
    chaque cellule de JTable utilise un Component pour afficher la donne de la table a cette position. ca peut etre n'importe quel JComponent.
    Si j'ai accés a ce JComponent, je vois comment faire pour afficher un tool tip. Il faudrait selon la doc que je surcharge CreateToolTip de JComponent. PAr contre, comment fais tu pour accéder à ce JComponent ?

    PS pour minus : merci, ça j'avais compris.

  7. #7
    Membre éclairé
    Avatar de bbclone
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 537
    Points : 704
    Points
    704
    Par défaut
    un petit exempe c'est mieut
    si tu comprent pas un truc dit le :-)))

    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
    56
    57
    import java.awt.Component;
    import java.util.Vector;
    
    import javax.swing.JComponent;
    import javax.swing.JTable;
    import javax.swing.ListSelectionModel;
    import javax.swing.table.TableCellRenderer;
    import javax.swing.table.TableColumnModel;
    import javax.swing.table.TableModel;
    
    /**
     * Created by IntelliJ IDEA.
     * User: bebe
     * Date: 30-Jun-2006
     * Time: 21:42:00
     * To change this template use File | Settings | File Templates.
     */
    public class JTableWithToolTip extends JTable {
        public JTableWithToolTip() {
        }
    
        public JTableWithToolTip(TableModel dm) {
            super(dm);
        }
    
        public JTableWithToolTip(TableModel dm, TableColumnModel cm) {
            super(dm, cm);
        }
    
        public JTableWithToolTip(TableModel dm, TableColumnModel cm, ListSelectionModel sm) {
            super(dm, cm, sm);
        }
    
        public JTableWithToolTip(int numRows, int numColumns) {
            super(numRows, numColumns);
        }
    
        public JTableWithToolTip(Vector rowData, Vector columnNames) {
            super(rowData, columnNames);
        }
    
        public JTableWithToolTip(final Object[][] rowData, final Object[] columnNames) {
            super(rowData, columnNames);
        }
    
        @Override
        public Component prepareRenderer(TableCellRenderer renderer, int row, int column) {
            Component c = super.prepareRenderer(renderer, row, column);
            if (c instanceof JComponent) {
                JComponent jc = (JComponent) c;
                jc.setToolTipText("I'm the tooltip of the cell [" + row + ", " + column + "] and the cell contains" +
                        getValueAt(row, column));
            }
            return c;
        }
    }
    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
     
    import java.awt.HeadlessException;
    import java.awt.EventQueue;
     
    import javax.swing.JFrame;
    import javax.swing.JTable;
    import javax.swing.JScrollPane;
     
     
    /**
     * Created by IntelliJ IDEA.
     * User: bebe
     * Date: 30-Jun-2006
     * Time: 21:41:50
     * To change this template use File | Settings | File Templates.
     */
    public class Test extends JFrame {
     
        public Test() throws HeadlessException {
            JTable myTable = new JTableWithToolTip(new MyTableModel());
            add(new JScrollPane(myTable));
            setSize(400, 300);
        }
     
        public static void main(String[] args) {
            EventQueue.invokeLater(new Runnable() {
                public void run() {
                    Test t = new Test();
                    t.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                    t.setLocationRelativeTo(null);
                    t.setVisible(true);
                }
            });
        }
     
    }
    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
     
    import javax.swing.table.TableModel;
    import javax.swing.event.TableModelListener;
     
    /**
     * Created by IntelliJ IDEA.
     * User: bebe
     * Date: 30-Jun-2006
     * Time: 21:42:09
     * To change this template use File | Settings | File Templates.
     */
    public class MyTableModel implements TableModel {
     
        private Object[][] o = new Object[][]{
                { "cell 1", "cell 2", "cell 3", },
                { "cell 4", "cell 5", "cell 6"}
        };
     
        public int getRowCount() {
            return o.length;
        }
     
        public int getColumnCount() {
            return o[0].length;
        }
     
        public String getColumnName(int columnIndex) {
            return "title";
        }
     
        public Class<?> getColumnClass(int columnIndex) {
            return String.class;
        }
     
        public boolean isCellEditable(int rowIndex, int columnIndex) {
            return true;
        }
     
        public Object getValueAt(int rowIndex, int columnIndex) {
            return o[rowIndex][columnIndex];
        }
     
        public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
             o[rowIndex][columnIndex] = aValue;
        }
     
        public void addTableModelListener(TableModelListener l) {
            //To change body of implemented methods use File | Settings | File Templates.
        }
     
        public void removeTableModelListener(TableModelListener l) {
            //To change body of implemented methods use File | Settings | File Templates.
        }
    }

  8. #8
    Membre régulier
    Inscrit en
    Février 2005
    Messages
    122
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 122
    Points : 110
    Points
    110
    Par défaut
    Citation Envoyé par bbclone
    un petit exempe c'est mieut
    si tu comprent pas un truc dit le :-)))
    ouais la c'est mieux, je comprends maintenant.
    Bon alors, j'ai tester la surcharge de la méthode prepareRenderer et ça marche trés bien.
    Merci beaucoup bb pour ton aide et a charge de revanche j'espère

    A+

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 03/02/2012, 22h47
  2. utiliser un keypress sur une cellule de datagrid
    Par thor76160 dans le forum C#
    Réponses: 24
    Dernier message: 27/04/2009, 10h24
  3. Utilisation de l'évenement double clic sur une cellule
    Par moilou2 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 01/07/2008, 14h57
  4. Focus sur une cellule spécifique d'un DBGrid
    Par danbern dans le forum Bases de données
    Réponses: 4
    Dernier message: 25/11/2004, 19h04
  5. capter l'evenement clic sur une cellule d'un string grid
    Par lasconic dans le forum Composants VCL
    Réponses: 3
    Dernier message: 25/06/2003, 10h51

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