JListは、 リストボックスを扱うコンポーネント。
|
素直にJListをインスタンス化してコンテナとかJPanelに追加しても、うまく表示できない(爆)
リストにはスクロールバーが要るので、JScrollPaneを使う必要がある。
また、JListのコンストラクターはいくつかあるが、固定でリストを表示したいのでない限り、データモデルを指定するのがいい。
import javax.swing.DefaultListModel; import javax.swing.JList; import javax.swing.JScrollPane;
@SuppressWarnings("serial")
public class MyJList extends JScrollPane { //←JListというクラス名なのにJScrollPaneのサブクラス^^;
protected JList jlist;
protected DefaultListModel model;
/** コンストラクター. */
public MyJList() {
super(new JList(new DefaultListModel()));
jlist = (JList) super.getViewport().getView();
model = (DefaultListModel) jlist.getModel();
}
@Override
public void setEnabled(boolean enabled) {
jlist.setEnabled(enabled);
super.setEnabled(enabled);
}
/**
* 要素を追加する.
*
* @param obj 要素
*/
public void addElement(Object obj) {
model.addElement(obj);
}
/**
* 要素を全て削除する.
*/
public void clear() {
model.clear();
}
}
private void initPane(Container c) { MyJList mylist = new MyJList(); mylist.addElement("abc"); mylist.addElement("def"); c.add(mylist); }