2012-11-11 2 views
1

Easy Java question ici. J'ai fait un JSlider personnalisé qui peint les carrés au dernier endroit où l'utilisateur a déplacé le curseur. Nous remplaçons paintcomponent et dessinons les carrés par rapport à la taille du curseur. Tout fonctionne bien lorsque vous utilisez le curseur correctement. Des problèmes surviennent quand vous redimensionnez le cadre. Le curseur grossit et le curseur se déplace avec lui, mais les carrés que nous avons placés ne bougent pas par rapport au curseur. Quelle fonction devrions-nous utiliser de JSlider pour repeindre quand nous redimensionnons le cadre? J'essaie de garder le code JSlider séparé du code de trame, donc nous voulons que l'utilisateur puisse utiliser notre JSlider personnalisé et ne pas essayer de gérer lui-même cette fonctionnalité de redimensionnement. Toute aide sur quelle méthode nous devrions utiliser pour cela?Comment repeindre sur redimensionner d'un JSlider personnalisé

Merci.

Répondre

1

Vous pouvez ajouter un ComponentListener à votre curseur qui le repeint sur componentResized.

slider.addComponentListener(new ComponentAdapter() { 
    @Override 
    public void componentResized(ComponentEvent e) { 
     e.getComponent().repaint(); 
    } 
}