我已将comboBox项的索引存储到数组中。现在当我检索它时,我得到了相同的索引。
我希望我想要显示该索引的相关值。
这是我的代码。
这是将索引添加到数组中的函数。
public void addData() {
// Retrive the text field values and combo box selected index and store them in variable
int roomIndex = roomTypeCombo.getSelectedIndex();
int mealIndex = mealCombo.getSelectedIndex();
Int daysIndex = daysCombo.getSelectedIndex();
//create the object of Customer class and pass the parameters
Customer c = new Customer(roomIndex, mealIndex, daysIndex);
myList.add(c); // add data into array list
} // end of function
这是将存储值显示到ArrayList
的功能public void showAll() {
String displayRecords = ""; // empty string
// retrieve all stored records in array list and store in variable
for (int i = 0; i < myList.size(); i++) {
displayRecords = displayRecords + myList.get(i) + "\n";
}
display.setText(displayRecords);
} // end of function
答案 0 :(得分:0)
如果显示组合框的值是您的要求,那么而不是
int roomIndex = roomTypeCombo.getSelectedIndex();
int mealIndex = mealCombo.getSelectedIndex();
Int daysIndex = daysCombo.getSelectedIndex();
为什么不使用以下代码:
String room = (String) roomTypeCombo.getSelectedItem();
String meal = (String) mealCombo.getSelectedItem();
String days = (String) daysCombo.getSelectedItem();
并创建一个Customer
的构造函数,以便以下是真的:
Customer c = new Customer(room, meal, days);
答案 1 :(得分:0)
我假设您的客户对象包含三个名为roomIndex,mealIndex和daysIndex的成员,因为您执行此操作:Customer c = new Customer(roomIndex, mealIndex, daysIndex);
您发布的showAll方法不会按预期打印出值。这是因为myList中的每个元素都是customer的对象,而不是字符串。客户对象包含不同的字符串(roomindex,mealindex,daysindex),因此如果要打印它们,则需要在客户类中使用getter。完成后,您可以打印客户类的内容,如下所示:
for (int i = 0; i < myList.size(); i++) {
System.out.println( myList.get(i).getRoomIndex() + " " + myList.get(i).getMealIndex() + " " + myList.get(i).getDaysIndex()+"\n");
}
方法getRoomIndex等应该是Customer中返回字符串的方法,如下所示:
public String getRoomIndex(){
return roomIndex;
}
编辑: 我错过了你只从comboBox获取索引,我的解决方案期望值而不是索引。您可以像Garbage在帖子中所说的那样立即获取该项目。方法getSelectedItem返回一个Object类型的对象,这就是他将它转换为字符串的原因。如果您获取的项目不是字符串,那么这可能是危险的,因此它可能不被视为防水解决方案,但可能在您的示例中起作用
答案 2 :(得分:0)
由于仅保留项目不的索引,您可以调用的项目的值,并显示组合框中的值,如下所示:
public void showAll() {
String displayRecords = ""; // empty string
int roomIndex;
int mealIndex;
int daysIndex;
// retrieve all stored records in array list and store in variable
for (int i = 0; i < myList.size(); i++) {
roomIndex = ((Customer)(myList.get(i)).roomIndex;
mealIndex = ((Customer)(myList.get(i)).mealIndex;
daysIndex = ((Customer)(myList.get(i)).daysIndex;
displayRecords = displayRecords + roomTypeCombo.getItemAt(roomIndex) + " " +
roomTypeCombo.getItemAt(mealIndex) + " " + roomTypeCombo.getItemAt(daysIndex)
+ "\n";
}
display.setText(displayRecords);
} // end of function
答案 3 :(得分:0)
在创建客户对象之前,为什么不打印roomIndex,mealIndex,daysIndex。只是为了看到在创建对象之前正确获取值。