/ / Obtenir toutes les cases sélectionnées en Java - java, swing, checkbox

Obtenez toutes les cases à cocher sélectionnées en Java - java, swing, checkbox

J'ai un dialogue en Java qui présente ~ 15cases à cocher à l'utilisateur. Existe-t-il un moyen d’obtenir les noms de toutes les cases cochées en même temps? Actuellement, je cherche un par un s’ils sont sélectionnés, ce qui n’est pas une solution de choix.

Je cherche quelque chose de similaire à Obtenir toutes les cases sélectionnées dans un tableau mais alors en Java

Réponses:

8 pour la réponse № 1

Lorsque vous ajoutez vos cases à cocher à votreLa boîte de dialogue conserve également une référence dans une collection. Ensuite, lorsque vous souhaitez voir quelles sont les cases cochées, vous pouvez simplement parcourir la collection et vérifier l’état de chacune d’elles. Vous pouvez obtenir le nom en appelant getText dessus.


6 pour la réponse № 2
List<JCheckBox> checkboxes = new ArrayList<JCheckBox>();
for( Component comp : panel.getComponents() ) {
if( comp instanceof JCheckBox) checkboxes.add( (JCheckBox)comp );
}

Cela suppose que toutes les instances de JCheckBox sont uneenfant direct du panneau conteneur. Sinon, vous devrez visiter tous les conteneurs du panneau de manière récursive en utilisant la même logique. Maintenant, pendant que vous pouvez le faire, il est généralement préférable de sauvegarder ces références telles que vous les avez créées dans une liste. Ensuite, vous pouvez facilement parcourir toutes les cases à cocher sans avoir à faire ce code ci-dessus. Si vous avez des composants incorporés, il est préférable de demander au composant intégré d’effectuer toutes les opérations souhaitées sur les cases à cocher qu’il possède (au lieu de les extraire du composant via un getter afin que vous puissiez les déranger de quelque façon).