AbstractListModel の独自のサブクラスで構築された JList を作成し、モデルは Action クラスのインスタンスを格納し、getElementAt() を次のように定義しました。
public final Object getElementAt(final int index)
{
return ((Action) actionList.get(index)).getValue(Action.NAME);
}
私の JList はアクション名のリストを表示しますが、これで問題ありません。
しかし、これらのアクションにはアイコンも定義されているので、
public final Object getElementAt(final int index)
{
return ((Action) actionList.get(index)).getValue(Action.SMALL_ICON)
);
}
代わりにアイコンが表示されるようになりました。
でもどっちも欲しいからやってみた
public final Object getElementAt(final int index)
{
return new JButton(
(String)((Action) actionList.get(index)).getValue(Action.NAME),
(Icon)((Action) actionList.get(index)).getValue(Action.SMALL_ICON)
);
}
そして今、代わりにボタンのプロパティを出力するだけです