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 :

Fixer la position d'une ScrollBar


Sujet :

Agents de placement/Fenêtres Java

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2011
    Messages : 60
    Points : 49
    Points
    49
    Par défaut Fixer la position d'une ScrollBar
    Bonjour,
    dans un fileViewer que j'ai cree, j'aimerai pouvoir fixer la positon du ScrollBar apres un refresh.
    Or j'arrive a recuperer la position du scrollBar, mais je n'arrive pas a la fixer apres le refresh.

    Voila une partie de mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    if (filename != null) {
                JScrollBar verticalScrollBar = viewerScrollPane.getVerticalScrollBar();
                int currentScrollBarValue = verticalScrollBar.getValue();
                int y = viewer.getCaretPosition();
                Point x = viewerScrollPane.getViewport().getViewPosition();
                viewFile(filename);
                System.out.println(viewerScrollPane.getVerticalScrollBar().getMaximum() + " " + currentScrollBarValue);
                if (verticalScrollBar.getMaximum() >= currentScrollBarValue) {
                    viewer.setCaretPosition(y);
                    viewerScrollPane.getViewport().setViewPosition(x);
                    viewerScrollPane.repaint();
     
                }
    }
    Merci d'avance

  2. #2
    Membre émérite
    Avatar de Nesmontou
    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Septembre 2004
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 612
    Points : 2 969
    Points
    2 969
    Par défaut
    Bonjour,

    As-tu essayé en utilisant la méthode setValue sur l'objet verticalScrollBar ?

    http://download.oracle.com/javase/6/...l#setValue(int)
    Si vous ne pouvez expliquer un concept à un enfant de six ans, c'est que vous ne le comprenez pas complètement. Albert EINSTEIN

    F.A.Q. : Java, PHP, (X)HTML / CSS

    N'oubliez pas de cliquer sur le bouton Résolu en bas de page quand vous avez obtenu une solution à votre problème

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2011
    Messages : 60
    Points : 49
    Points
    49
    Par défaut
    Oui je l'ai essayer mais sans succes. J'avais trouver sur un topic une methode ScrollTo(int x, int y ) mais elle n'existe pas dans les methodes de mes variables...

  4. #4
    Membre émérite
    Avatar de Nesmontou
    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Septembre 2004
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 612
    Points : 2 969
    Points
    2 969
    Par défaut
    Re,

    Je viens de faire ce petit test rapide :
    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
    58
    59
    60
    61
    import java.awt.BorderLayout;
    import java.awt.Dimension;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
     
    import javax.swing.ImageIcon;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JScrollPane;
    import javax.swing.JTextField;
     
    public class MainFrame extends JFrame implements ActionListener {
     
    	private static final long serialVersionUID = -7204686009086977692L;
     
    	private JScrollPane pane;
    	private JLabel label;
    	private JTextField field;
     
    	public MainFrame() {
    		super();
     
    		this.init();
    	}
     
    	@Override
    	public void actionPerformed(ActionEvent e) {
    		try {
    			int value = Integer.parseInt(this.field.getText());
     
    			this.pane.getVerticalScrollBar().setValue(value);
    		} catch (NumberFormatException nfe) {
    			nfe.printStackTrace();
    		}
    	}
     
    	private void init() {
    		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		this.setResizable(false);
    		this.setSize(500, 400);
    		this.setTitle("Test scrollbar");
     
    		ImageIcon icon = new ImageIcon("C:/test/image.jpg");
     
    		this.label = new JLabel(icon);
    		this.label.setPreferredSize(new Dimension(icon.getIconWidth(), icon.getIconHeight()));
     
    		this.pane = new JScrollPane(this.label);
    		this.add(this.pane, BorderLayout.CENTER);
     
    		this.field = new JTextField();
    		this.field.addActionListener(this);
    		this.add(this.field, BorderLayout.SOUTH);
    	}
     
    	public static void main(String[] args) {
    		JFrame frame = new MainFrame();
    		frame.setVisible(true);
    	}
     
    }
    En saisissant un entier dans la zone de texte et en appuyant sur entrée, la scrollbar verticale est bien mise à jour.
    Si vous ne pouvez expliquer un concept à un enfant de six ans, c'est que vous ne le comprenez pas complètement. Albert EINSTEIN

    F.A.Q. : Java, PHP, (X)HTML / CSS

    N'oubliez pas de cliquer sur le bouton Résolu en bas de page quand vous avez obtenu une solution à votre problème

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2011
    Messages : 60
    Points : 49
    Points
    49
    Par défaut
    Ca ne marche pas pour moi, ou c'est moi qui n'arrive pas a l'appliquer a mon code.

    EDIT : Je commence a arriver a l'appliquer mais le probleme que j'ai maintenant c'est que la scroll ne se mets pas exactement au bon endroit apres le refresh, elle se place un peu avant , ( presque au milieu) du chemin entre y=0 et y=position, alors que le fichier, n'as pas change.

Discussions similaires

  1. Réponses: 1
    Dernier message: 31/05/2008, 16h57
  2. Mémoriser la position d'une ScrollBar
    Par Arcann dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 05/02/2008, 10h20
  3. Réponses: 4
    Dernier message: 12/06/2007, 09h34
  4. Réponses: 1
    Dernier message: 08/01/2007, 16h47
  5. Position d'une ScrollBar dans un TRichEdit (ou TMemo)
    Par Troll dans le forum C++Builder
    Réponses: 9
    Dernier message: 24/02/2005, 15h18

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