невозможно добавить элемент в JcomboBox Java - PullRequest
0 голосов
/ 22 октября 2018

У меня проблемы с добавлением элементов в JcomboBox (Swing) в Java.У меня нет ошибок, но что-то не работает, так как функция не добавляет никаких элементов.Я просто хочу добавить 4 курса (их CourseName) в различные слоты в поле со списком.Конструктор должен добавить элементы.Может кто-нибудь определить, что я делаю неправильно?

Вот важные части моего кода.

public class CourseCatalog extends javax.swing.JFrame {

     ArrayList <Course> courseList = new ArrayList<>();
    public void addCourse(Course accAdd) {
    courseList.add(accAdd);
}

/**
 * Creates new form ViewKursFrame
 */
public CourseCatalog() {
    initComponents();

    for (Course kursen : courseList){
        jcbKursNamn.addItem(kursen.getCourseName());
        System.out.println("sjAJDJASJD");
    }
}

Класс курса

public class Course {

private String kursnamn;
private String Kurskod;
private String svårighetsgrad;
private String ämnesgrupp;
//static ArrayList <Course> kursLista = new ArrayList<>();

public Course(){   }

public Course (String kursnamn, String kurskod, String svårighetsgrad, String ämnesgrupp){
    this.kursnamn = kursnamn;
    this.Kurskod = kurskod;
    this.ämnesgrupp = ämnesgrupp;
    this.svårighetsgrad = svårighetsgrad;
}

Основной класс

public class MainView {
/**
 * @param args the command line arguments
 */
public static void main(String[] args) {

    CourseCatalog view = new CourseCatalog();
    Course kurs1 = new Course("Programutveckling med java", "D0024E", "Grundkurs", "Data");
    Course kurs2 = new Course("Programutveckling med java2", "D0007N", "Grundkurs", "Data");
    Course kurs3 = new Course("Programutveckling med Ruby", "D0024F", "Masterkurs", "Data");
    Course kurs4 = new Course("Programutveckling med HTML", "D004F", "Grundkurs", "Data");

    view.addCourse (kurs1);
    view.addCourse (kurs2);
    view.addCourse (kurs3);
    view.addCourse (kurs4);

    view.visaKurserna();
    view.setVisible(true);       
}

1 Ответ

0 голосов
/ 22 октября 2018

Проблема в том, что вы добавляете курсы в JComboBox в конструкторе CourseCatalog .Поскольку конструктор любого класса всегда вызывается только во время инициализации объекта и в то время, когда переменная courseList , которую вы поддерживаете для хранения списка курсов, будет пустой, из-за чего ваш JComboBox ничего не показывает.

Исправление / разрешение: Вместо добавления курсов в JComboBox во время инициализации добавьте его при добавлении курсов.Используйте свой метод addCourse (), как показано ниже:

public void addCourse(Course accAdd) {
    courseList.add(accAdd);
    jcbKursNamn.addItem(accAdd.getCourseName());
}

Надеюсь, этот ответ поможет

...