2014-09-02 3 views
-1

사용자로부터 주문을받는 프로그램을 만들려고합니다. 내 문제는 내가 3 개의 분리 된 목록 상자가 있기 때문에 나는 음식을 알파벳순으로 분류 할 수 없다는 것이다. 첫 번째 목록 상자는 음식의 이름이고, 두 번째는 음식의 양이고, 세 번째 목록 상자는 음식의 가격이다. 내가 원하는 것은 목록 상자에 오렌지 (2pcs) (1 달러), 멜론 (3pcs) (2 달러), 애플 (1pc) (4 달러)가 포함 된 경우 두 번째 및 세 번째 목록 상자를 따르는 것입니다.어떻게 정렬 할 수 있습니까?

그것과 같은 방법 :

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

나는 제 2 및 제 3 목록을 어떻게 해야할지하지 않습니다

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

는 그런 다음 "정렬"버튼을 누른 후 나는 그것을 같이 할 첫 번째 목록 상자를 정렬 한 후 상자. 두 번째와 세 번째를 첫 번째 목록 상자의 순서대로 따르는 방법을 모르겠습니다.

http://postimg.org/image/awxe4pk4t/ 사용자는 식품 이름을 입력하고 콤보 상자에 원하는 수량을 선택합니다. 그런 다음 장바구니에 추가 버튼을 누르면 목록 상자에 입력이 추가되어 사용자가 입력 한 음식에 따라 가격이 세 번째 목록 상자에 표시됩니다.이 프로그램에 선언 된 음식은 10 가지뿐입니다.

답변

0

당신은이 같은 구조로 모든 PARAMS를 넣을 수 있습니다 :

public class OrderItem { 

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

} 

을 그리고 PARAMS의 세 가지 목록 대신 List<OrderItem>를 사용;

으로 정렬보다이 후

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 및 setters를 사용할 수도 있지만 가장 간단한 방법입니다.

관련 문제