Идея заключается в следующем:
Создать объект панели JPanel;
Используйте метод SetLayout (0,4) класса JPanel, чтобы установить диспетчер макетов сетки, то есть количество столбцов составляет 4, а количество строк автоматически корректируется;
Создать одномерный массив строкового типа в качестве управляющего текстового массива;
Создать одномерный массив типа JCheckbox в качестве массива управления;
Используйте цикл для цикла для цикла через управляющий массив, инициализируйте компонент флажки в массиве и добавьте элементы массива (то есть каждый флажок) на панель, используя метод add () класса JPanel.
Код заключается в следующем:
Кода -копия выглядит следующим образом:
Пакет cn.edu.xidian.crytoll;
импортировать java.awt.borderlayout;
импортировать java.awt.eventqueue;
импортировать java.awt.gridlayout;
импортировать javax.swing.jcheckbox;
импортировать javax.swing.jframe;
импортировать javax.swing.jpanel;
Импорт javax.swing.border.emptyborder;
импортировать javax.swing.jlabel;
Импорт javax.swing.uimanager;
Public Class CheckBoxArray расширяет jframe {
/**
*
*/
Частный статический последний длинный сериоверсион = -5338362310060106193L;
Частный JPanel ContentPane;
частная панель JPanel;
/**
* Запустите приложение.
*/
public static void main (string [] args) {
пытаться {
Uimanager
.setLookandFeel ("com.sun.java.swing.plaf.nimbus.nimbuslookandfeel");
} catch (throwable e) {
e.printstacktrace ();
}
EventQueue.invokelater (new Runnable () {
public void run () {
пытаться {
CHACEBOXARRARE FRAME = NEW CHACKBOBOBARARARE ();
Frame.SetVisible (true);
} catch (Exception e) {
e.printstacktrace ();
}
}
});
}
/**
* Создать кадр.
*/
Public CheckboxArray () {
Settitle («Добавить несколько элементов управления флажками через массив управления флажками»);
setDefaultCloseoPeration (jframe.exit_on_close);
SetBounds (100, 100, 409, 331);
ContentPane = new jPanel ();
ContentPane.Setborder (новый пустойбордер (5, 5, 5, 5));
contentpane.setlayout (new Borderlayout (0, 0));
SetContentPane (ContentPane);
Jlabel label = new jlabel (
«Какие у вас хобби:»);
contentpane.add (метка, borderlayout.north);
contentpane.add (getPanel (), borderlayout.center);
}
Private JPanel getPanel () {
if (panel == null) {
панель = new jPanel (); // Создать объект панели
Panel.setLayout (New Gridlayout (0, 4)); // Установить диспетчер макетов сетки
// Создать управляющий текстовый массив
String [] labels = {«футбол», «баскетбол», «магия», «настольный теннис», «фильм», «World of Warcraft», «Команда CS»,
«Бадминтон», «Плавание», «Путешествие», «Восхождение», «Пение», «Блог», «Животный мир», «Фотографирование», «Играя на гитаре»,
«Чтение газет», «гонки», «шоппинг», «Покупки в торговых центрах», «Маджонг», «Чтение книг», «Посмотреть онлайн -информацию», «Новости», «Военные»,
«Гаграм», «Сохранение здоровья», «питье чай»};
Jcheckbox [] boxs = new jcheckbox [labels.length]; // Создать массив элементов управления
для (int i = 0; i <boxes.length; i ++) {// Траверсировать управляющий массив
Компсы [i] = new jcheckbox (метки [i]); // Инициализировать компонент флажки в массиве
Panel.add (Boxs [i]); // Добавить элементы массива (то есть каждый флажок) на панель
}
}
возвращаемая панель;
}
}