Reputation: 79
I'm making an application at the moment and now I need to fill a comboBox with all the values that I get from another class in an arrayList type.
This is the code that I use to fill my combobox:
public void setComboBox(){
MessageConsole mc = new MessageConsole(textArea);
//The redirectOut will redirect the text from the System.out.prtnln to the text area.
mc.redirectOut();
List<String> arrayList = new ArrayList<String>();
if(gf.loadCombo("config") != null){
arrayList.addAll(gf.loadCombo("config"));
for (int i = 0; i < arrayList.size(); i++) {
String s = arrayList.get(i);
configName.removeItem(s);
configName.addItem(s);
}
}
}
This is the code from the other class:
public Collection<String> loadCombo(String property) {
//Check if the property file is present in the given directory.
if(cf.checkProperty()==true){
//Check is there are any properties saved in the property file.
if(cf.getProperty() != null){
Properties prop = new Properties();
FileInputStream fis;
try {
fis = new FileInputStream("config.properties");
prop.load(fis);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//Check if the properties match with the entered configuration.
List<String> arrayList = new ArrayList<String>();
arrayList.addAll(cf.getProperty());
Collection<String> propertyList = new ArrayList<String>();
for (int i = 0; i < arrayList.size(); i++) {
String s = arrayList.get(i);
if(s.startsWith(property)){
System.out.println("This value has been added to the arrayList from the other class: "+s);
propertyList.add(cf.getPropertyValue(s));
}
}
return propertyList;
}
//The system prints a message of the missing properties.
else{
System.out.println("You need to save a configuration first.");
}
}
//The system prints a message of the missing property file.
else{
System.out.println("The property file is either missing or could not be found. in de Load class");
}
return null;
}
Following is a screenshot of the result:
As you can see all the values are added as 1 long String"[3, 2, 1]" in the comboBox. Could anyone tell me why this happens?
Thanks in advance,
Lordarnoud
P.S. I hope this is the correct way to ask my question and I hope my question is clear enough for everyone to understand.
Upvotes: 1
Views: 275
Reputation: 2336
At a first look it appears the problem could be one of two things:
loadCombo
method. More specifically from the cf.getProperty()
. It is not clear from the context provided what cf
is.configName.removeAllItems()
instead of removing then adding each item in your collection.Additionally in your loadCombo
method you load the config.properties file into a Properties object and then do nothing with it. It seems your intentions were to load the config properties from that file instead of the cf
object.
Upvotes: 2