JList
に配列(-s)を追加した後、要素のビューを変更するにはどうすればよいですかListModel
。必要:
2.0 11.0 1.0
持つ:
[D@198dfaf
追加する前と..から取得した後に「配列から文字列へ」の変換を使用したくありませんJList
。何かアイデアはありますか? ありがとう!
そのためにListCellRendererを使用できます。JList のモデルに入力した値を表すコンポーネントを返すことができます。
デフォルトの CellRenderer はDefaultListCellRendererです。これは基本的に JLabel の拡張であり、すべての適切なルック アンド フィール設定が既に設定されています。そのため、DefaultListCellRenderer を拡張して、返された値に配列テキストを設定できます。
レンダラーを変更したり、オーバーライドしたりする代わりにtoString()
、リストに追加するオブジェクトのビューアダプターを追加することを検討できます。この簡略化された例に似たもの:
class ArrayListViewAdapter {
Object[] list;
public ArrayListViewAdapter(Object[] list){
this.list = list;
}
@Override
public String toString(){
return StringUtils.join(list, " ");
}
}
次に、モデルにアイテムを追加します。
model.addElement(new ArrayListViewAdapter(new Integer[]{1, 2, 3}));