[Associer un Jscrollbar à un Jpanel]

Fermé
info3 Messages postés 7 Date d'inscription samedi 24 avril 2004 Statut Membre Dernière intervention 19 avril 2005 - 8 avril 2005 à 17:27
kij_82 Messages postés 4088 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 - 8 avril 2005 à 23:46
slt , svp je suis bloqué , je cherche une methode qui permet d'associer un jscrollball à un jpanel ,contenant un composant graphique, sans que ce composant s'efface .
et merci d'avance pour votre collaboration..

1 réponse

kij_82 Messages postés 4088 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
8 avril 2005 à 23:46
Inspire toi donc de ça : ca permet de rendre une image "scrollée", pour ce g juste taper sur google : API JAVA puis afficher les classes de javax.swing et la je suis tomber sur JScrollPane et dans la page cetrale sur 'how to use Scroll pane'. Pas compliqué si on a un minimum de base en Anglais. J'ai lu vite fais et à mon avis, même si ce que tu as dessous n'est pas tout à fait ce que tu souhaite, tu trouvera ton bonheur au même endroit !

Bonne chance @++.


import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;

/* ScrollablePicture.java is used by ScrollDemo.java. */

public class ScrollablePicture extends JLabel
implements Scrollable,
MouseMotionListener {

private int maxUnitIncrement = 1;
private boolean missingPicture = false;

public ScrollablePicture(ImageIcon i, int m) {
super(i);
if (i == null) {
missingPicture = true;
setText("No picture found.");
setHorizontalAlignment(CENTER);
setOpaque(true);
setBackground(Color.white);
}
maxUnitIncrement = m;

//Let the user scroll by dragging to outside the window.
setAutoscrolls(true); //enable synthetic drag events
addMouseMotionListener(this); //handle mouse drags
}

//Methods required by the MouseMotionListener interface:
public void mouseMoved(MouseEvent e) { }
public void mouseDragged(MouseEvent e) {
//The user is dragging us, so scroll!
Rectangle r = new Rectangle(e.getX(), e.getY(), 1, 1);
scrollRectToVisible(r);
}

public Dimension getPreferredSize() {
if (missingPicture) {
return new Dimension(320, 480);
} else {
return super.getPreferredSize();
}
}

public Dimension getPreferredScrollableViewportSize() {
return getPreferredSize();
}

public int getScrollableUnitIncrement(Rectangle visibleRect,
int orientation,
int direction) {
//Get the current position.
int currentPosition = 0;
if (orientation == SwingConstants.HORIZONTAL) {
currentPosition = visibleRect.x;
} else {
currentPosition = visibleRect.y;
}

//Return the number of pixels between currentPosition
//and the nearest tick mark in the indicated direction.
if (direction < 0) {
int newPosition = currentPosition -
(currentPosition / maxUnitIncrement)
* maxUnitIncrement;
return (newPosition == 0) ? maxUnitIncrement : newPosition;
} else {
return ((currentPosition / maxUnitIncrement) + 1)
* maxUnitIncrement
- currentPosition;
}
}

public int getScrollableBlockIncrement(Rectangle visibleRect,
int orientation,
int direction) {
if (orientation == SwingConstants.HORIZONTAL) {
return visibleRect.width - maxUnitIncrement;
} else {
return visibleRect.height - maxUnitIncrement;
}
}

public boolean getScrollableTracksViewportWidth() {
return false;
}

public boolean getScrollableTracksViewportHeight() {
return false;
}

public void setMaxUnitIncrement(int pixels) {
maxUnitIncrement = pixels;
}
}
0