2014-09-02 35 views
-1

我正在嘗試創建一個程序,該程序將接受來自用戶的命令。我的問題是,我無法按字母順序排列食物,因爲我有3個單獨的列表框,第1個列表框是用於食物的名稱,第2個是食物的數量,第3個列表框是用於食物的價格。我想要的是第二個和第三個列表框,例如如果列表框中包含橙色(2個)($ 1),瓜(3個)($ 2),蘋果(1個)($ 4)我該如何排序?

它的樣子:

Orange | 2pcs | $1 
Melon  | 3pcs | $2 
Apple  | 1pcs | $4 

然後按「排序」按鈕後,我希望它看起來像這樣:

Apple  | 1pcs | $4 
Melon  | 3pcs | $2 
Orange | 2pcs | $1 

我不知道做什麼用的第2和第3個清單做在排序第一個列表框之後的框。 我不知道如何使第二和第三個按照第一個列表框的順序。

http://postimg.org/image/awxe4pk4t/ 用戶將輸入食物名稱並在組合框中選擇所需數量。然後,按下添加到購物車按鈕後,程序會將輸入添加到列表框中,根據用戶輸入的食物,價格將出現在第三個列表框中。此程序中僅聲明瞭10種食品類型。

回答

0

你可以把你所有的PARAMS到結構,像這樣:

public class OrderItem { 

    public String foodName; 
    public int price; 
    public int quantity; 

} 

而且使用List<OrderItem>而非則params的三個列表;

比對其進行排序:

List<OrderItem> list = new ArrayList<>(); 
... 

Collections.sort(list, new Comparator<OrderItem>() { 
    @Override 
    public int compare(OrderItem item1, OrderItem item2) { 
     return item1.foodName.compareTo(item2.foodName); 
    } 

}); 

在此之後把PARAMS到你的列表框分開;

對於OrderItem字段,您也可以使用getter和setter,而不是公共字段,但這是最簡單的方法。