jComboBox的奇怪行为

时间:2019-03-08 09:50:26

标签: java derby jcombobox netbeans-8

我们已经用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获得空值。

知道这是什么原因吗?

0 个答案:

没有答案