L'idée est la suivante:
Créer un objet de panneau JPanel;
Utilisez la méthode setLayout (0,4) de la classe JPanel pour définir le gestionnaire de mise en page du réseau, c'est-à-dire que le nombre de colonnes est 4, et le nombre de lignes est automatiquement ajusté;
Créer un tableau unidimensionnel de type chaîne en tant que tableau de texte de contrôle;
Créez un tableau unidimensionnel de type JCheckBox en tant que tableau de contrôle;
Utilisez la boucle FOR pour faire boucler via le tableau de contrôle, initialisez le composant à cocher dans le tableau et ajoutez les éléments du tableau (c'est-à-dire chaque case à cocher) au panneau à l'aide de la méthode ADD () de la classe JPanel.
Le code est le suivant:
La copie de code est la suivante:
package cn.edu.xidian.crytoll;
import java.awt.borderLayout;
import java.awt.eventqueue;
import java.awt.gridLayout;
Importer javax.swing.jCheckbox;
import javax.swing.jframe;
import javax.swing.jpanel;
Importer Javax.swing.border.emptyborder;
import javax.swing.jlabel;
import javax.swing.uimanager;
classe publique CheckboxArray étend JFrame {
/ **
*
* /
Final statique privé long SerialVersionUID = -5338362310060106193L;
JPANEL privé ContentPane;
Panel JPanel privé;
/ **
* Lancez l'application.
* /
public static void main (String [] args) {
essayer {
Uimanager
.setLookAndFeel ("com.sun.java.swing.plaf.nimbus.nimbusLookAndFeel");
} catch (jetable e) {
e.printStackTrace ();
}
EventQueue.invokelater (new Runnable () {
public void run () {
essayer {
CheckboxArray frame = new CheckBoxArray ();
frame.setVisible (true);
} catch (exception e) {
e.printStackTrace ();
}
}
});
}
/ **
* Créez le cadre.
* /
public CheckboxArray () {
setTitle ("Ajouter plusieurs contrôles à cocher via le tableau de contrôle de la boîte à cocher");
setDefaultCloseOperation (jframe.exit_on_close);
Setbounds (100, 100, 409, 331);
contentPane = new JPanel ();
ContentPane.SetBorder (New videBorder (5, 5, 5, 5));
contentPane.SetLayout (new BorderLayout (0, 0));
setContentPane (contentPane);
JLABEL Label = new JLabel (
"Quels sont vos passe-temps:");
contentPane.add (label, borderlayout.north);
contentPane.add (getPanel (), borderLayout.center);
}
Jpanel privé getpanel () {
if (panneau == null) {
panneau = nouveau jpanel (); // créer un objet de panneau
PANNEL.SETLAYOUT (NOUVEAU GRIDLAYOUT (0, 4)); // Définissez le gestionnaire de mise en page de la grille
// Créer un tableau de texte de contrôle
String [] Labels = {"Football", "Basketball", "Magic", "Table Tennis", "Movie", "World of Warcraft", "CS Team",
"Badminton", "natation", "voyage", "Climbing", "Singing", "Blogging", "Animal World", "Photographing", "Play Guitar",
"Reading Newspapers", "Racing", "Shopping", "Shopping in Malls", "Mahjong", "Reading Books", "Looking Online Information", "News", "Military",
"Gagram", "Preservation de la santé", "Boire du thé"};
JCheckbox [] Boxes = new JCheckbox [Labels.Length]; // Créer un tableau de contrôles
for (int i = 0; i <boxes.length; i ++) {// traverse le tableau de contrôle
Boxes [i] = new JCheckbox (Labels [i]); // Initialisez le composant à cocher dans le tableau
panneau.add (boîtes [i]); // ajouter des éléments de tableau (c'est-à-dire chaque case à cocher) au panneau
}
}
panneau de retour;
}
}