在我个人学习 Java 的过程中,我遇到了另一个障碍。
到目前为止,我有 2 个数组,第一个是带有摄影胶片制造商列表的一维数组,第二个是具有以下外观的二维数组:
Film Developer Dilusion 35mm 120 Sheet Temperature
Kodak T-Max 100, Ilfosol S, 1+9, 10, 10, , 20C
Kodak T-Max 100, Rodinal RO9, 1+25, 9, 9, , 20C
Kodak T-Max 100, Rodinal RO9, 1+50, 13, 13, , 20C
(注意,不要使用上述时间来冲洗这些胶片,我刚刚为此示例输入了任何数据)
在我的 JFrame 上,我有一个 JComboBox 列表(胶片、显影剂、稀释度、胶片格式)。胶片盒由一维数组填充,我有以下代码试图在选择胶片时列出可能的开发人员。目前,此代码会导致无限循环,需要对我的笔记本电脑进行硬重置,因此肯定有问题。
private void filmComboBoxActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
developerComboBox.removeAllItems();
int count = 0;
while (count <= rows) {
if (myArray[0][count] == filmComboBox.getSelectedItem()) {
developerComboBox.addItem(myArray[1][count]);
count++;
}
}
}
非常感谢有关我在这段代码中出错的地方的任何建议,一旦完成这部分,我将使用不同的字符串名称等重复代码...以在选择开发人员时填充稀释字段,然后电影格式字段
干杯 吉姆
最佳答案
while (count <= rows) {//Loop until count less than or equal to rows
if (myArray[0][count] == filmComboBox.getSelectedItem()) {
//If it Never Satisfied Count won't be incremented
developerComboBox.addItem(myArray[1][count]);
count++;//Never Incremented
}
}
您的 count 变量没有递增,并且您的循环变得无限大,将 count++
放在 if block 之外,并使用 .equals
方法来比较 Strings
Java。
关于java - 使用数组数据填充 Java ComboBox,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24971498/