在本课程中,我将获取存储在数据库中的公交车站列表的名称,并且我希望将它们显示在组合框中。但我得到以下错误:
ArrayList类型中的方法get(int)不适用于参数(String)
有什么建议吗?
// gets the stop names from the database
int[] routeArray = BusStopInfo.getRoutes();
int[] stopIdArray;
ArrayList<String>stopName = new ArrayList<String>();
for(int i = 0; i < routeArray.length; i++) {
stopIdArray = BusStopInfo.getBusStops(i);
for (int j = 0; j < stopIdArray.length; j++) {
stopName.add(BusStopInfo.getFullName(stopIdArray[j]));
}//for
} // for
String[] nameArray = new String[stopName.size()];
nameArray = stopName.toArray(nameArray);
for (int k = 0; k < stopIdArray.length; k++){
stopListDeparture = stopName.get(nameArray[k]);
}
stopListDeparture.setSelectedIndex(0);
setLayout(new BorderLayout());
add(stopListDeparture, BorderLayout.NORTH);
答案 0 :(得分:1)
我将从其他答案中提出不同的建议。请考虑以下几点:
nameArray = stopName.toArray(nameArray);
for (int k = 0; k < stopIdArray.length; k++){
stopListDeparture = stopName.get(nameArray[k]);
}
您正在将列表stopName
转换为String
数组,然后遍历该数组并获取该数组中与...对应的项目?你确定那是什么意思吗?
而不是stopName.get(nameArray[k])
我想或许你的意思是stopName.get(stopIdArray[k])
。与nameArray
不同,stopIdArray
实际上是int
的数组,因此编译运行得很好。
这里的赠品是你从0到stopIdArray
的长度迭代,而是从不同的数组(nameArray
)获取元素。有时这就是你的意思,但通常是代码味道。
答案 1 :(得分:0)
执行stopName.get(nameArray[k]);
时,nameArray [k]为String
。您需要执行stopName.get(Integer.parseInt(nameArray[k]));
答案 2 :(得分:0)
Ur问题位于以下行
stopListDeparture = stopName.get(nameArray[k]);
nameArray [k]返回一个字符串,您尝试使用该字符串从列表中检索一个特定元素。根据{{3}} get方法获取一个int并返回该列表中指定位置的元素。
答案 3 :(得分:0)
我找到了这样做的方法。我将JComboBox声明为。 谢谢大家的回答。
windowOverscan