java JComboBox不更新(通过模型)

时间:2013-11-19 19:01:10

标签: java swing jcombobox

我创建了一个小应用程序,它从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);
    }
}

0 个答案:

没有答案