Définir l’épaisseur de la barre de défilement

Existe-t-il un moyen de régler l’épaisseur de la barre de défilement dans un JScrollPane ? la valeur par défaut est un peu maladroite.

Une solution rapide mais également sale consiste à régler explicitement la largeur / hauteur sur, par exemple, 10 pixels via

 jScrollPane.getVerticalScrollBar().setPreferredSize(new Dimension(10, 0)); jScrollPane.getHorizontalScrollBar().setPreferredSize(new Dimension(0, 10)); 

Une autre manière serait de fournir un ScrollBarUI approprié.

 int verticalScrollBarWidthCoefficient = 3; scrollPane.getVerticalScrollBar().setPreferredSize(new Dimension( (int) scrollPane.getVerticalScrollBar().getPreferredSize() .getWidth() * verticalScrollBarWidthCoefficient, (int) scrollPane.getVerticalScrollBar().getPreferredSize().getHeight() )); 

Ce qui suit s’applique au LNF par défaut (Metal).

Si vous souhaitez simplement définir une taille spécifique, vous pouvez alors mettre ce code avant de créer le JScrollPane (remplacez 40 par la taille de votre choix) …

 UIManager.put("ScrollBar.width", 40); 

Si vous souhaitez redimensionner la barre de défilement en fonction de la taille par défaut, procédez comme suit (avant de créer le JScrollPane) …

 UIManager.put("ScrollBar.width", (int) ((int) UIManager.get("ScrollBar.width") * 2.5)); 

Si vous voulez le changer après avoir créé le JScrollPane, les choses sont un peu plus complexes, mais pas trop mal …

 int scrollbarSize = ; UIManager.put("ScrollBar.width", scrollbarSize); scrollPane.setVerticalScrollBar(scrollPane.createVerticalScrollBar()); scrollPane.setHorizontalScrollBar(scrollPane.createHorizontalScrollBar()); 

J’espère que cela aide quelqu’un.

Le moyen le plus simple pour moi était d’éditer directement le fichier jquery.jscrollpane.css . changer la largeur de .jspVerticalBar . 🙂