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