无法将项目添加到 JcomboBox Java
can't add item to 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");
}
}
课程class
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;
}
主要class
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);
}
问题是您要在 CourseCatalog 构造函数中向 JComboBox 添加课程。由于任何 class 的构造函数总是仅在对象正在初始化时被调用,并且在该初始化时间 courseList 您正在维护以保存课程列表的变量将是空的 - 导致你的 JComboBox 没有显示任何东西。
Fix/Resolution :
而不是在初始化时将课程添加到 JComboBox 中,而是在添加课程时添加它。
让您的 addCourse() 方法如下所示:
public void addCourse(Course accAdd) {
courseList.add(accAdd);
jcbKursNamn.addItem(accAdd.getCourseName());
}
希望这个回答对您有所帮助
我在 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");
}
}
课程class
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;
}
主要class
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);
}
问题是您要在 CourseCatalog 构造函数中向 JComboBox 添加课程。由于任何 class 的构造函数总是仅在对象正在初始化时被调用,并且在该初始化时间 courseList 您正在维护以保存课程列表的变量将是空的 - 导致你的 JComboBox 没有显示任何东西。
Fix/Resolution : 而不是在初始化时将课程添加到 JComboBox 中,而是在添加课程时添加它。 让您的 addCourse() 方法如下所示:
public void addCourse(Course accAdd) {
courseList.add(accAdd);
jcbKursNamn.addItem(accAdd.getCourseName());
}
希望这个回答对您有所帮助