Java jComboBox的奇怪行为

Java jComboBox的奇怪行为,java,swing,derby,jcombobox,netbeans-8,Java,Swing,Derby,Jcombobox,Netbeans 8,我们为一个学校项目用java中的Netbeans 8.2构建了一个项目,并创建了一个表单,其中包含一个JcomboBox,它是从derby数据库填充的。 第一次运行的应用程序从json格式的web api下载电影列表,并将其与电影类型一起存储在derby中。然后用户可以创建收藏列表,并将从不同类型中选择的电影分配到收藏列表 问题在于,当您打开表单在用户创建的JComboBox列表中分配电影时,具有流派选择的JComboBox将显示为空。如果退出应用程序并重新打开它,JComboBox将正确填充

我们为一个学校项目用java中的Netbeans 8.2构建了一个项目,并创建了一个表单,其中包含一个JcomboBox,它是从derby数据库填充的。 第一次运行的应用程序从json格式的web api下载电影列表,并将其与电影类型一起存储在derby中。然后用户可以创建收藏列表,并将从不同类型中选择的电影分配到收藏列表

问题在于,当您打开表单在用户创建的JComboBox列表中分配电影时,具有流派选择的JComboBox将显示为空。如果退出应用程序并重新打开它,JComboBox将正确填充

JComboBox的渲染器代码如下:

 genreCombo.setRenderer(new DefaultListCellRenderer() {
        @Override
        public Component getListCellRendererComponent(
            JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
            super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
            if (value instanceof Genre) {
                Genre mec = (Genre)value;
                setText(mec.getName());
            }
            return this;
        }
    });
从调试中我看到,当表单显示不正确时,保存类型的值变量返回空movieList,当表单显示正确时,值变量保存一个包含所有已下载电影且属于当前类型的movieList。 因此,setText获取空值

你知道是什么引起的吗