Problème Graphics dans JScrollPane
Bonjour,
voilà j'ai un problème avec un JScrollPane.
Code:
1 2 3 4 5 6 7 8
| public class FenetrePrinc extends JFrame {
public FenetrePrinc() {
JScrollPane jsc = new JScrollPane();
Grille2D gr = new Grille2D(200, 200);
jsc.add(gr);
setContentPane(jsc);
setBounds(new Rectangle(100, 100));
} |
Je veux mettre une grille dans le JScrollPane afin de pouvoir modifier la taille de ma grille cependant, il semble que :
1-> Quand je resize ma fenêtre le graphique ne reste pas
2-> Le JScollPane ne détecte pas que je dessine en dehors de ma vue
Voici le code de ma grille :
Code:
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
| public class Grille2D extends JPanel {
private int largeur_par_case;
private int longueur_grille;
private int hauteur_grille;
Grille2D(int longueur_, int hauteur_) {
longueur_grille = longueur_;
hauteur_grille = hauteur_;
largeur_par_case = 20;
setSize((20*longueur_)+50, (20*hauteur_grille)+50);
}
protected void paintComponent(Graphics g) {
super.paintComponent(g);
setBackground(Color.WHITE);
for (int i=0; i != hauteur_grille+1; i++) {
g.drawLine(0, i*largeur_par_case, hauteur_grille*largeur_par_case, i*largeur_par_case);
}
for (int i=0; i != longueur_grille+1; i++) {
g.drawLine(i*largeur_par_case, 0, i*largeur_par_case, longueur_grille*largeur_par_case);
}
}
} |
:aie:
Merci à tous et à toutes
Réponse pour ceux intéressés
J'ai réussi à trouver la réponse à ma question qui était comment faire pour que le JScrollPane puisse reconnaître que son composant a changé ... et bien en changeant son setPreferredSize ...
Code:
1 2 3 4 5 6 7
|
Grille2D(int longueur_, int hauteur_) {
longueur_grille = longueur_;
hauteur_grille = hauteur_;
largeur_par_case = 20;
setPreferredSize(new Dimension((20*longueur_)+50, (20*hauteur_grille)+50));
} |
Merci