gpt4 book ai didi

java - JComboBox 在 Java 中显示空白项

转载 作者:搜寻专家 更新时间:2023-11-01 01:50:36 26 4
gpt4 key购买 nike

我有 2 个 JComboBox:showingsCbtimesCb

showingsCb 包含从我的数据库中提取的电影放映列表。

timesCb 包含一个电影放映时间列表,该列表基于 showingsCb 中的选择,它也是从我的数据库中提取的。

现在我已经设法用正确的数据填充它们并且逻辑工作正常,但这是我的问题:

我在 showingsCb 中进行选择,然后启用 timesCb 并在单击 timesCb 后,显示所有显示时间的列表在 showingsCb 中选择的显示上。这工作正常。

然后我在 showingsCb 中选择一个不同的显示,并在单击 timesCb 时,列表下拉并显示一个空白列表。放映时间存在于这个空白列表中,但我看不到它们(我知道它们在那里,因为我可以单击它们应该在的空白区域,它会填充 JComboBox我的选择)。

我在 JComboBox 上使用 DefaultComboBoxModel,它由 ArrayListVector 填充(其中使用我自己的方法从我的数据库中检索结果)。我在 showingsCb 上使用 ActionListener 来监听选择,因此它知道返回的显示时间。

这是我的代码:

        ArrayList<String> showingNames = Showing.getShowingList();
showingNames.add(0, "--Select Showing--");
DefaultComboBoxModel showingNameModel = new DefaultComboBoxModel(showingNames.toArray());
showingsCb = new JComboBox(showingNameModel);

Vector timesList = new Vector();
timesList.add("--Select Time--");
DefaultComboBoxModel timesModel = new DefaultComboBoxModel(timesList);
timesCb = new JComboBox(timesModel);
timesCb.setEnabled(false);

showingsCb.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {

timesList.clear();
timesList.add("--Select Time--");
timesCb.setSelectedIndex(0);
if (showingsCb.getSelectedIndex() == 0) {
timesCb.setEnabled(false);
} else {
timesCb.setEnabled(true);
ArrayList<String> times = Showing.getShowingTimes(Showing.getShowingIDByName(showingsCb.getSelectedItem().toString())); //gather showing times based on showingID
Iterator itt = times.iterator();
while (itt.hasNext()) {
timesList.add(itt.next());
}
}
}

});

下面是结果显示为空白时的截图:

enter image description here

如果我单击该空白下拉列表中的任意位置,则我选择的选项将显示为我的所选项目。

我也无法从 timesCb JComboBox

上的代码中废弃 Vector

最佳答案

好的。您的 defaultcomboboxmodel 是用 timesList 初始化的。在 Action 监听器中,您清除了这一点,您需要使用新的 timeList 重新初始化您的模型。所以 timesCb.setModel( new DefaultComboBoxModel( timesList ) ) 在 while 循环之后将解决您的问题。

或者实际上是更好的方法。你不应该每次都构建一个新的模型类,而是在 while 循环中的 Action 监听器中这样做:

timesModel.addElement( itt.next() );

关于java - JComboBox 在 Java 中显示空白项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34617821/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com