Mục tiêu cuối cùng của tôi là có một JList làm mới nội dung của nó trong thời gian chạy và tôi đã tìm được giải pháp hoạt động từ bài đăng này here on SO. ý tưởng ban đầu của tôi thì không.Sử dụng phương thức JList .setModel() với một lớp làm đối số
Tính đến bây giờ, tôi có một cái gì đó giống như thiết lập này và nó hoạt động:
DefaultListModel default = new DefaultListModel();
for(int i = 0; i < array.size() ; ++i){
test.addElement(array.get(i));
}
list.setModel(default);
Dưới đây là kế hoạch ban đầu của tôi. Tôi muốn có một lớp học mà thực hiện ListModel được thông qua như một đối số, hy vọng nó sẽ làm mới JList.
SomeClass test = new SomeClass(); //Implements ListModel
list.setModel(test);
hoặc
SomeClass test = new SomeClass(); //Implements ListModel
list = new JList(test);
Cả những nơi làm việc, trong đó bối rối cho tôi. Có thể hai phương pháp cuối cùng này làm việc một số cách, mã này sạch hơn rất nhiều.
Cảm ơn.
Chuyển một lớp ListModel thay vì một thể hiện của lớp này là lỗi bộ biên dịch. Tại sao bạn bối rối? – Istao
Tôi nghĩ bản giới thiệu mã của tôi hơi tiếc một chút. Thats những gì tôi đã làm, tôi sẽ thay đổi mã để làm cho điều này rõ ràng hơn. – Koop
Tại sao hai phương pháp cuối không hoạt động? Vui lòng cung cấp lỗi mà bạn đang gặp phải. Nếu 'SomeClass' mở rộng' ListModel', thì cả hai phương thức đó sẽ hoạt động. –