我已经使用这个框架很长一段时间了,我想我应该检查并确保在将它实现到我现在正在处理的大规模Swing应用程序之前这是一个好主意。
我有两个位于我系统根目录的接口:
public interface Colorable {
Color getColor();
}
public interface Listable {
String getListDisplay();
}
然后每当我创建新的JList
时,我都会创建一个新的ListRenderer
:
private class ListRenderer
extends DefaultListCellRenderer {
@Override
public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
if (!(value instanceof Listable)) {
return this;
}
if (value instanceof Colorable) {
Color c = ((Colorable) value).getColor();
if (c != null) {
setForeground(c);
}
}
Listable listable = (Listable) value;
setText(listable.getListDisplay());
return this;
}
}
这是管理JLists
的好方法吗?
答案 0 :(得分:0)
这是处理这种情况的常用方法。