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

Agents de placement/Fenêtres Java Discussion :

[JScrollPane] position du Jtable contenu


Sujet :

Agents de placement/Fenêtres Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite
    Profil pro
    Responsable Dev
    Inscrit en
    Décembre 2003
    Messages
    788
    Détails du profil
    Informations personnelles :
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Responsable Dev

    Informations forums :
    Inscription : Décembre 2003
    Messages : 788
    Par défaut [JScrollPane] position du Jtable contenu
    bonjour,
    voila j'ai écrit une classe extends de JPanel contenant un JScrollPane et un JTable
    mon code ressemble donc a cela

    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
    public class DataFileTable extends JPanel implements MouseListener
    {
            private JTable table;
            private DataFileTableModel model;
            private Font f=new Font("SanSerif",Font.PLAIN,24);
            private int ligne = 0;
            private int column = 0;
            private Point point= new Point(0,0);
     
            public DataFileTable()
            {
                    setFont(f);
                    setLayout(new BorderLayout());
                    //create model
                    model = new AbstractTableModel();
                    //create table
                    table=new JTable();
     
                    //config table
                    table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
                    table.setSelectionBackground(new Color(255, 193, 193));
                    table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
                    table.getTableHeader().setReorderingAllowed(false);
                    table.setModel(model);
                    table.createDefaultColumnsFromModel();
     
                    //scroller
                    JScrollPane scrollPane = new JScrollPane(table,
                                                ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS,
                                                ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS);
     
                    add(scrollPane);
                    table.addMouseListener(this);
            }
     
            public void mouseClicked (MouseEvent e)
    	{
    		point = e.getPoint ();
    		column = table.columnAtPoint (point)+1;
    		ligne = table.rowAtPoint (point)+1;
    	}
     
    	public void mouseExited (MouseEvent e) { }
    	public void mousePressed (MouseEvent e) { }
    	public void mouseReleased (MouseEvent e) { }
    	public void mouseEntered (MouseEvent e) { }
    }
    bon j'arrive à connaitre ou l'utilisateur click par contre je n'arrive pas à savoir quel est a position du table dans le scrollPane:
    En gros la question quel est la cellule que je vois en haut à gauche?
    ou simplement quel est le numero de la ligne que je vois en haut?

    et puis comment connaitre la taille de la ligne (en hauteur) -> pour déterminer combien de ligne il voit?

    merci beaucoup

  2. #2
    Membre expérimenté
    Inscrit en
    Septembre 2003
    Messages
    174
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 174
    Par défaut Re: [JScrollPane]position du Jtable contenu
    Salut,
    Citation Envoyé par fraoustin
    et puis comment connaitre la taille de la ligne (en hauteur) -> pour déterminer combien de ligne il voit?
    Pour les JTable, tu as :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    getRowHeight()
    et
    getRowHeight(int row)
    Pour le reste, je ne sais pas trop comment tu peux faire ....

  3. #3
    Membre émérite
    Profil pro
    Responsable Dev
    Inscrit en
    Décembre 2003
    Messages
    788
    Détails du profil
    Informations personnelles :
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Responsable Dev

    Informations forums :
    Inscription : Décembre 2003
    Messages : 788
    Par défaut
    bon je m'en suis sorti ainsi
    sur JScrollPane j'ai un Scrollbar
    d'ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    JScrollPane.getVerticalScrollBar().addMouseListener(listener);
    dans le listener j'ai :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    public void mouseClicked (MouseEvent e) {modifyView();}
            public void mouseExited (MouseEvent e) {modifyView();}
            public void mousePressed (MouseEvent e) {modifyView();}
            public void mouseReleased (MouseEvent e) {modifyView();}
            public void mouseEntered (MouseEvent e) {modifyView();}
     
    public void modifyView()
            {
                    a=this.getVerticalScrollBar().getValue();
                    numberlie=a/table.getRowHeight()
            }
    donc cje sais via la hauteur d'une ligne qu'elle est la ligne que je vois en haut à droite

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 16
    Par défaut plus simple et plus propre
    sur JScrollPane, utilise getViewport().getViewPosition() qui te renvoie le point visible en haut à gauche

    après, sur JTable, utilise les méthodes columnAtPoint et rowAtPoint pour obtenir la cellule correspondant au point

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

Discussions similaires

  1. Mettre deux JScrollPane dans un JTable
    Par pianetdi dans le forum Composants
    Réponses: 3
    Dernier message: 30/01/2014, 19h47
  2. Problème JScrollPane position haute
    Par Hefgé dans le forum Composants
    Réponses: 1
    Dernier message: 15/03/2011, 12h20
  3. JScrollPane position ascenseur
    Par dieurouille dans le forum AWT/Swing
    Réponses: 7
    Dernier message: 30/06/2010, 10h54
  4. [JScrollPane] redéfinition automatique du contenu
    Par vasilov dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 01/12/2006, 09h24
  5. Connaitre la position dans jTable à partir de la souris
    Par totore dans le forum Composants
    Réponses: 1
    Dernier message: 17/11/2006, 18h04

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