본문 바로가기

[JAVA]

[JAVA]10월 14일 스윙 컴포넌트, 리스트(List), 리스트의 이벤트 처리 예제

*리스트

-리스트(List)는 여러 개의 선택 항목 중에서 하나를 선택하기 위한 컴포넌트이다.

-리스트는 한 줄에 하나씩 선택 항목을 나타내며 이영역은 스크롤이 가능하다.

-일반적으로 사용자는 마우스 클릭에 의하여 항목을 선택.

-더블 클릭이나 엔터 키를 치면 액션 이벤트가 발생한다.

리스트에서는 항목을 선택할 수 있는 모드에는 다음의 3가지가 있다

단일선택(SINGLE_SELECTION), 단일 구간 선택(SINGLE_INTERVAL_SELECTION)

다중 구간 선택(MULTIPLE_INTERVAL_SELECTION).


*선택 모드 변경

list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);


*리스트의 이벤트 처리

리스트의 항목이 선택되면 리스트 선택 이벤트를 발생한다. 이 이벤트는 리스트 선택 리스너를 가지고 처리할 수 있다.


위 3가지를 가진 예제 코드를 작성해 보겠다.


class MyFrame2 extends JFrame implements ListSelectionListener{

JList<String> jlist;

JLabel label;

public MyFrame2(){

String[] s = {"1", "2", "3", "4"};

jlist = new JList<String>(s);

label = new JLabel("");

jlist.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);

jlist.addListSelectionListener(this);

this.add(jlist);

this.add(label, BorderLayout.SOUTH);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

this.setSize(300, 200);

this.setVisible(true);

}


@Override

public void valueChanged(ListSelectionEvent e) {

if(jlist.getSelectedIndex() == 0)

label.setText("1이 선택 되었습니다.");

}

}

public class Test {


public static void main(String[] args) {

new MyFrame2();

}

}


실행 하게 되면 ~


위에 이벤트 처리에는 1을 선택 했을때만 이벤트 처리를 해준것이다.