为了账号安全,请及时绑定邮箱和手机立即绑定

无法将项目添加到 JcomboBox Java

无法将项目添加到 JcomboBox Java

拉风的咖菲猫 2021-12-01 16:50:11
我在将项目添加到 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);       }
查看完整描述

1 回答

?
慕丝7291255

TA贡献1859条经验 获得超6个赞

问题是您将课程添加到CourseCatalog构造函数中的 JComboBox 。因为任何类的构造函数总是只在对象被初始化时被调用,并且在初始化时间courseList变量你维护的课程列表将是空的 - 导致你的 JComboBox 不显示任何内容。


修复/解决方案: 而不是在初始化时将课程添加到 JComboBox,而是在添加课程时添加它。使用如下所示的 addCourse() 方法:


public void addCourse(Course accAdd) {

    courseList.add(accAdd);

    jcbKursNamn.addItem(accAdd.getCourseName());

}

我希望这个答案有帮助


查看完整回答
反对 回复 2021-12-01
  • 1 回答
  • 0 关注
  • 168 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信