0
Я использую два компонента JComboBox
. Первое поле со списком получает данные из таблицы базы данных. Второй комбинированный блок также получает свои данные из таблицы базы данных и на основе данных, выбранных в первом поле со списком. i.eДва компонента JComboBox, управляемые данными
- combo box 1 - получает все курсы из базы данных.
- combo box 2 - получает все слоты, доступные для выбранного курса, из первого поля со списком.
Как это сделать?
course = new JComboBox();
// get all the courses from database
DefaultComboBoxModel model = new DefaultComboBoxModel();
ArrayList <String>c = ConnectDB.getAllCourse();
for(String co: c)
{
model.addElement(co);
}
course.setModel(model);
course.setBounds(135, 136, 86, 20);
jf.getContentPane().add(course);
Тогда:
course.addItemListener(new ItemListener()
{
@Override
public void itemStateChanged(ItemEvent e) {
String course = (String) e.getItem();
System.out.println(course);
try {
ArrayList<String> AvailableSlots = ConnectDB.getAvailableSlots(course);
System.out.println(ConnectDB.getAvailableSlots(course));
System.out.println(AvailableSlots);
} catch (SQLException e1) {
e1.printStackTrace();
}
}
});
slot = new JComboBox();
slot.setModel(availableSlots);
slot.setBounds(135, 164, 86, 20);
1) Для лучшего помогите раньше, опубликуйте [MCVE] или [Short, Self Contained, Correct Example] (http://www.sscce.org/). 2) Java GUI должны работать с различными ОС, размером экрана, разрешением экрана и т. Д., Используя разные PLAF в разных локалях. Таким образом, они не способствуют идеальной компоновке пикселей. Вместо этого используйте диспетчеры макетов или [их комбинации] (http://stackoverflow.com/a/5630271/418556), а также макет и границы для [пробела] (http://stackoverflow.com/a/17874718/ 418556). –