S-JIS[2009-09-26] 変更履歴

JList(Swing)

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);
	}

Swing目次へ戻る / Java目次へ戻る
メールの送信先:ひしだま