J'ai un JDialog
avec un JLabel
. Je veux changer la valeur de l'étiquette toutes les 10 secondes. Comment puis-je redessiner/repeindre JDialog
avec la valeur mise à jour dans JLabel
.Modification de la valeur de jLabel dans jDialog après l'avoir chargé
Répondre
Utilisez un Swing Timer pour programmer les mises à jour de l'étiquette. Ensuite, tout ce que vous faites est
label.setText(...);
et l'étiquette sera repeinte automatiquement. Il n'est pas nécessaire d'appeler repaint()
.
Vous problème peut-être que vous essayez de démarrer le Timer
après avoir affiché un modal JDialog
. Dans ce cas, le code ne s'exécute pas tant que la boîte de dialogue n'est pas fermée. Donc, vous devez vous assurer que vous démarrez le Timer
avant d'utiliser dialog.setVisible(true)
.
Si vous avez besoin de plus d'aide, postez votre SSCCE montrant le problème.
Vous pouvez utiliser Timer et TimerTask pour planifier pour toutes les 10 secondes, dans lequel vous avez à fournir la valeur de Text
JLabel
. Après cela, vous devez actualiser la fenêtre en cours avec la méthode repaint()
. Maintenant, vous obtiendrez la valeur Text
de JLabel
mise à jour ...
J'ai déjà codé pour appeler la méthode repaint. Mais il ne reçoit pas l'appel après que la propriété setVisible a la valeur true. – Joe
Si oui, essayez setVisible (false), définissez la valeur puis setVisible (true) ... Essayez-le ... – Venkat
Non, il affiche toujours l'ancienne valeur. – Joe
Si oui, essayez setVisible (false), définissez la valeur puis setVisible (true) ... Essayez-le ... – Venkat