2010-04-26 28 views
7

tôi xác định enums:làm thế nào để sử dụng JComboBox sử dụng Enum trong Dialog Box

enum itemtype {Đầu tiên, thứ hai, thứ ba};

public class mục

{

tin itemtype enmItemType;

...

}

Làm thế nào để sử dụng nó bên trong hộp Dialog sử dụng JComboBox? Có nghĩa là, bên trong hộp thoại, người dùng sẽ có hộp kết hợp với (Thứ nhất, Thứ hai, Thứ ba). Ngoài ra, tốt hơn là sử dụng một số loại ID cho mỗi tử số? (Số nguyên)

cảm ơn.

+0

có thể trùng lặp với [Populating Swing JComboBox từ Enum] (http://stackoverflow.com/questions/1459069/populating-swing-jcombobox-from-enum) – oers

Trả lời

8
JComboBox combo = new JComboBox(itemType.values()); 
3

Giả sử bạn biết làm thế nào để mã hóa một hộp thoại với một JComboBox, sau đây là một cái gì đó bạn có thể làm để nạp giá trị Enum vào một combo box:

enum ItemType {First, Second, Third};  
JComboBox myEnumCombo = new JComboBox(); 
myEnumCombo.setModel(new DefaultComboBoxModel(ItemType.values()); 

Sau đó, để có được giá trị như enum bạn có thể làm

(ItemType)myEnumCombo.getSelectedItem(); 

Không cần gán ID cho enums trừ khi logic ứng dụng của bạn cần phải có một số ID có ý nghĩa được chỉ định. Enum chính nó đã có một hệ thống ID duy nhất.

21

Đây là phương pháp tôi đã sử dụng:

enum ItemType { 
    First("First choice"), Second("Second choice"), Third("Final choice"); 
    private final String display; 
    private ItemType(String s) { 
     display = s; 
    } 
    @Override 
    public String toString() { 
     return display; 
    } 
} 

JComboBox jComboBox = new JComboBox(); 
jComboBox.setModel(new DefaultComboBoxModel(ItemType.values())); 

Trọng phương thức toString cho phép bạn để cung cấp hiển thị văn bản mà trình bày cho người dùng lựa chọn có ý nghĩa.

Lưu ý: Tôi cũng đã thay đổi itemType thành ItemType vì tên loại phải luôn có giới hạn hàng đầu.

Các vấn đề liên quan