java swing 自定义 ListModel
时间: 2023-12-11 20:03:57 浏览: 115
swing自定义按钮
4星 · 用户满意度95%
您好!您可以通过实现 `javax.swing.ListModel` 接口来自定义 `ListModel`。下面是一个简单的示例:
```java
import javax.swing.ListModel;
import javax.swing.ListDataEvent;
import javax.swing.event.ListDataListener;
import java.util.ArrayList;
import java.util.List;
public class CustomListModel implements ListModel<String> {
private List<String> data;
private List<ListDataListener> listeners;
public CustomListModel() {
data = new ArrayList<>();
listeners = new ArrayList<>();
}
public void addElement(String element) {
data.add(element);
int index = data.size() - 1;
ListDataEvent event = new ListDataEvent(this, ListDataEvent.INTERVAL_ADDED, index, index);
notifyListeners(event);
}
public void removeElement(int index) {
data.remove(index);
ListDataEvent event = new ListDataEvent(this, ListDataEvent.INTERVAL_REMOVED, index, index);
notifyListeners(event);
}
private void notifyListeners(ListDataEvent event) {
for (ListDataListener listener : listeners) {
listener.contentsChanged(event);
}
}
@Override
public int getSize() {
return data.size();
}
@Override
public String getElementAt(int index) {
return data.get(index);
}
@Override
public void addListDataListener(ListDataListener listener) {
listeners.add(listener);
}
@Override
public void removeListDataListener(ListDataListener listener) {
listeners.remove(listener);
}
}
```
在上面的示例中,我们实现了自定义的 `ListModel` 接口,该接口包含了管理数据、监听器的方法。您可以根据需要添加或删除元素
阅读全文