我创建了一个小应用程序,它从XML文件中读取有关大学科目的数据。 我可以添加新的主题等 然而我的问题是我有另一个带有JComboBox的框架,它只通过一个方法填充,只要我做一个更改就会调用它(从XML文件读取或添加一个主题,然后添加到我的JTable和XML文件)。
当我最初启动我的应用程序时,它会自动打开一个默认的XML文件并读取内容,并按照我的意愿将每个主题添加到组合框中。但是,后续调用(如添加主题或打开新文件)似乎没有任何效果。
有问题的代码:
public void fillComboBoxSubject(ArrayList<Subject> subjectList)
{
DefaultComboBoxModel<String> cbm = new DefaultComboBoxModel<String>();
for ( Subject subject : subjectList )
{
cbm.addElement( subject.getName() ); //getName() returns a String
System.out.println(subject.getName());
}
comboBoxSubject.setModel(cbm);
}
如果我打开一个新文件,println会显示每个主题,但组合框不会更新。
此致 LML
编辑:SSCCE 包含组合框的所有外观:
public class FEnterMark extends JFrame
{
private JComboBox<String> comboBoxSubject;
public FEnterMark()
{
comboBoxSubject = new JComboBox<String>();
comboBoxSubject.setBounds(83, 8, 140, 20);
contentPane.add(comboBoxSubject);
}
public void fillComboBoxSubject(ArrayList<Subject> subjectList)
{
DefaultComboBoxModel<String> cbm = new DefaultComboBoxModel<String>();
for ( Subject subject : subjectList )
{
cbm.addElement( subject.getName() );
System.out.println(subject.getName());
}
comboBoxSubject.setModel(cbm);
}
}