2009-11-05 4 views
0

J'ai une petite application qui met à jour le contenu d'un JFrame très rapidement (plusieurs fois par seconde) et à chaque mise à jour (j'enlève un composant puis en ajoute un nouveau, puis redéfinit la visibilité) le JFrame clignote dans la barre des tâches (WinXp) pour demander le focus. C'est très agaçant et je suis sûr qu'il peut être désactivé. Je ne peux pas savoir où.Arrêter une jframe demandant une mise au point

Des idées?

Répondre

4

Est-ce que je vous correctement

Vous faites quelque chose comme

frame.remove(cold); 
frame.add(cnew); 
frame.setVisible(false); 
frame.setVisible(true); 

Au lieu de faire cet essai en utilisant

frame.remove(cold); 
frame.add(cnew); 
frame.validate() 
+0

Mon swing est rouillé, mais cela ne devrait-il pas être invalide()? –

+0

Vous voulez expliquer pourquoi? Seuls les sous-composants du JFrame ont changé. Pourquoi devrais-je marquer le JFrame lui-même et tous ses parents comme invalide? – jitter

2
comprends

supprimer un composant, puis ajouter un nouveau ,

La meilleure solution serait de simplement mettre à jour le composant existant. Les composants Swing sont conçus pour se repeindre lorsque les propriétés et les données sont modifiées.