1. 생성자
//JList 생성자는 임의의 객체 유형의 배열을 받아들인다. 반드시 String일 필요는 없지만
//실제 목록에 표시될 때는 String 형태로 표현된다.
String[] listEntries = {"alpha", "beta", "gamma", "delta", "epsilon", "zeta", "eta", "theta"};
list = new JList(listEntries);
2. 사용 방법
1)수직 스크롤 바가 들어가야 한다.
//JTextArea를 만들 때하고 동일하다. 목록을 넘겨주면서 JScrollPane을 만들고 목록이 아닌
//그 스크롤 틀을 패널에 추가해야 한다.
JScrollPane scroller = new JScrollPane(list);
scroller.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
scroller.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
panel.add(scroller);
2)스크롤하기 전에 보여줄 행의 개수를 설정한다.
list.setVisibleRowCount(3);
3)한 번에 하나만 선택할 수 있도록 설정한다.
list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
4)목록 선택 이벤트에 등록한다.
list.addListSelectionListener(this);
5)이벤트를 처리한다.(목록에서 어떤 항목에 선택되었는지 알아낸다.)
public void valueChanged(ListSelectionEvent lse) {
//if문을 집어넣지 않으면 이벤트를 두 번 받게 된다.
if( !lse.getValueIsAdjusting()) {
//getSelectedValue()에서는 Object를 리턴한다. 목록에 String 객체만 들어갈 수 있는 것은 아니다.
String selection = (String) list.getSelectedValue();
System.out.println(selection);
}
}
'개발 및 관리 > Java' 카테고리의 다른 글
ArrayList VS 일반배열 (0) | 2013.01.25 |
---|---|
BeatBox.java (0) | 2013.01.24 |
JCheckBox (0) | 2013.01.24 |
JTextArea (0) | 2013.01.24 |
JTextField (0) | 2013.01.24 |