- 한번에 여러개의 항목을 출력할 수 있다.
- 1개 이상의 항목을 선택할 수 있다.
*
import java.awt.*;
import java.awt.event.*;
public class TestLists extends Frame implements ItemListener {
List lstBread;
TextField tField;
public TestLists() {
lstBread = new List(3, true); //List의 인스턴스 생성(행수 지정,다중선택허용여부)
lstBread.add("White Bread");
lstBread.add("Wheat Bread");
lstBread.add("Rye Bread");
lstBread.addItemListener(this); //이벤트 처리를 위한 ItemListener인터페이스 구현
tField = new TextField(" ", 30);
setLayout(new FlowLayout());
add(lstBread);
add(tField);
addWindowListener(new WinCloser());
setTitle("Using Lists");
setBounds(100,100,300,300);
setVisible(true);
}
public void itemStateChanged(ItemEvent ie) {
List selBread = (List)ie.getItemSelectable(); //이벤트발생 근원지를 얻는다.
if(selBread.getSelectedItem() != null) //1개의 항목 선택
tField.setText("You selected " + selBread.getSelectedItem());
else {
tField.setText("");
for(int i=0; i<selBread.getItemCount(); i++) {
if(selBread.isIndexSelected(i)) {
String oldString = tField.getText();
tField.setText(oldString + " " + selBread.getItem(i));
} //선택되었으면 출력될 문자열에 내용을 추가
} //TextField에 문자열을 추가하는 메소드가 존재하지 않기 때문에 수동으로 처리
}
}
public static void main(String[] args) {
TestLists tc = new TestLists();
}
}
class WinCloser extends WindowAdapter {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
}
*