无法将项目添加到 JcomboBox Java

我在将项目添加到 Java 中的 JcomboBox (Swing) 时遇到问题。我没有错误,但由于该功能未添加任何项目,因此某些功能不起作用。我只想将 4 门课程(他们的课程名称)添加到组合框的不同插槽中。构造函数应该添加元素。有人可以确定我做错了什么吗?


这是我的代码的重要部分。


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);       

}


拉风的咖菲猫
浏览 169回答 1
1回答

慕丝7291255

问题是您将课程添加到CourseCatalog构造函数中的 JComboBox 。因为任何类的构造函数总是只在对象被初始化时被调用,并且在初始化时间courseList变量你维护的课程列表将是空的 - 导致你的 JComboBox 不显示任何内容。修复/解决方案: 而不是在初始化时将课程添加到 JComboBox,而是在添加课程时添加它。使用如下所示的 addCourse() 方法:public void addCourse(Course accAdd) {&nbsp; &nbsp; courseList.add(accAdd);&nbsp; &nbsp; jcbKursNamn.addItem(accAdd.getCourseName());}我希望这个答案有帮助
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java