2011-01-06 39 views
20

Tôi đang tìm nạp các giá trị dữ liệu từ cơ sở dữ liệu thành công. Tôi cũng đã lưu chúng vào một mảng String[]. Tôi cần tải mảng String như các mục của JComboBox để đáp ứng với hành động quan trọng. Làm thế nào tôi có thể tải lại các mục của JComboBox bất cứ khi nào một phím được nhấn khi các giá trị được tìm nạp phụ thuộc vào phím được nhấn. Thay vào đó, tôi cần phải tự động làm mới các mục JComboBox.Tự động thay đổi JComboBox

Trả lời

29
DefaultComboBoxModel model = new DefaultComboBoxModel(yourStringArray); 
comboBox.setModel(model); 
+0

Cám ơn trả lời của bạn nhưng bạn có thể xin vui lòng gửi một mã số để illustrarte này. nó sẽ rất hữu ích. Tôi không chắc chắn về những gì để viết trong lớp DefaultComboBoxModel. –

+0

Đó là mã. Bạn không viết gì trong lớp DefaultComboBoxModel. Bạn chỉ cần tạo mô hình bằng cách sử dụng mảng chuỗi và sau đó thêm mô hình vào hộp tổ hợp. – camickr

6

Bạn có một vài tùy chọn. Bạn có thể sử dụng removeAllItems() (hoặc một trong các phương pháp xóa khác) và addItem(Object anObject) để thao tác các đối tượng có thể chọn. Hoặc bạn có thể triển khai ComboBoxModel và cho phép nó phân phối dữ liệu từ mảng của bạn.

6

Đây là bản demo cho minh họa kết hợp mặc định hộp mô hình

public class ComboPanel extends JPanel { 

    JComboBox jcbo; 
    // this is constructor 
    public ComboPanel(ArrayList<String> items) { 
     jcbo = new JComboBox(); 
     // getting exiting combo box model 
     DefaultComboBoxModel model = (DefaultComboBoxModel) jcbo.getModel(); 
     // removing old data 
     model.removeAllElements(); 

     for (String item : items) { 
      model.addElement(item); 
     } 

     // setting model with new data 
     jcbo.setModel(model); 
     // adding combobox to panel 
     this.add(jcbo);  
    } 
} 

Tôi hy vọng điều này sẽ giúp ít :)

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