我们已经用Java的Netbeans 8.2为School项目构建了一个项目,并创建了一个窗体,其中包含一个从derby数据库填充的JcomboBox。 首次运行的应用程序从json中的网络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;
}
});
从调试中我看到,当表单显示不正确时,保存类型的value变量返回空的movieList,当表单出现正确时,值变量保存带有所有已下载电影且属于当前类型的movieList。 因此,setText获得空值。
知道这是什么原因吗?