Как я могу искать в поле, выбранном в JComboBox? - PullRequest
0 голосов
/ 24 марта 2020

У меня есть класс Subjects POJO с некоторыми полями (имя_субъекта, учитель, семестр и т. Д.) И класс GUI с JComboBox, JTextField и JButton.

У меня также есть Список заполнен множеством предметов.

В JComboBox есть несколько строк, таких как subject_name, teacher и остальные имена полей в Subjects, и я хочу выбрать элемент в ComboBox, а затем, когда Я нажимаю кнопку J, она должна искать строку, набранную в поле JTextField в списке, но она должна смотреть только в поле, выбранное в поле со списком.

Я не уверен, что я четко ее описал, поэтому вот пока немного кода:

public static void searchList(List<Course> courses, Function<Course, String> function, JTextField jTextField) {
    String searchValue = jTextField.getText();
    List<Course> result = courses.stream().filter(item -> function.apply(item).equals(searchValue)).collect(Collectors.toList());

    printList(result); //this is just a simple forEach loop
}

А вот как я вызываю метод в ActionListener JComboBox:

courseController.searchList(subjects, Course::getTeacher, textFieldKeres);

Код работает отлично, достаточно просто переключить Course :: getTeacher в Course :: getBuilding или что-то еще, но где я вызываю метод, он должен выбрать, какой метод получения использовать на основе JComboBox, поэтому мне не нужно писать переключатель с близким к 20 случаев.

Есть идеи, что делать?

...