2014-01-27 40 views
0

嗨,大家好林具有设置我的组合框的选择项的JComboBox - 数组列表设置所选项目

我目前正在读它包含一个人

我有一个组合的对象的文件,有点麻烦盒子是通过使用一个数组列表里面3名由它

我想读取文件的人的文件中获取当前的名字和名称设置为我的组合框中

继承人我到目前为止:

for(Person p : personList){ 
    if(p.getName() == personList.toString()){ 
    personComboBox.setSelectedItem(p.getName()); 
    } 
} 

我已经设法通过文件的读取,我只是想在我的组合框中

+1

先不要使用'比较两个字符串值=='。使用'equals()'。其次,我不确定您是否想将名称与列表的字符串表示进行比较。这是没有意义的。 –

+0

我的personList是Person类型的人 –

+0

你知道'personList.toString()'是做什么的吗?我建议你打印它看看它输出。 –

回答

0

1更新我选择的项目 - personList是一个数组,而不是一个项目。 2 - 永远不要使用==来比较字符串!更喜欢.equals()。

,你应该做的是什么somethink这样的:

String personInTheFile = "Fubar Rabuf"; 
for(int i=0; i<personComboBox.getItemCount(); i++){ 
    Person p = personComboBox.getItemAt(i); 
    if(personInTheFile.equals(p.toString())){ 
     personComboBox.setSelectedIndex(i); 
     break; 
    } 
} 
+0

我的arraylist持有我的组合框的值,人被用来检查该数组的值是否等于person对象我已经从我的文件 –

+0

中拉出来了,但是怎么样?在你的文件中,你只有一个人,而不是一个人的名单,对吗?阵列里面可能有很多“人物”,但你只是将它与一个“人物”进行比较。即使因为您正在使用==进行比较,它也不会返回true,因为它会比较内存地址而不是内容。在上面的代码中,我解释了一个简单的方法来实现你想要的东西(如果我正确理解你的疑惑)。 –