JList — 리스트 컴포넌트

JList — 리스트 컴포넌트

JList는 객체 목록을 표시하고 사용자가 하나 이상의 항목을 선택할 수 있게 하는 컴포넌트입니다. 목록의 내용은 별도의 모델인 ListModel이 유지합니다.

출처: Java API Reference

본문

public class JList<E> extends JComponent implements Scrollable, Accessible

객체 목록을 표시하고 사용자가 하나 이상의 항목을 선택할 수 있게 하는 컴포넌트입니다. 목록의 내용은 별도의 모델인 ListModel이 유지합니다. 배열이나 Vector를 표시하는 것은 쉽습니다. JList 생성자가 자동으로 읽기 전용 ListModel 인스턴스를 만들어 주기 때문입니다. 예:

String[] data = {"one", "two", "three", "four"};
JList<String> myList = new JList<String>(data);

ListModel은 생성자나 setModel 메서드로 JList에 직접 제공할 수 있습니다. 내용은 정적일 필요가 없습니다. 항목 수와 값은 시간에 따라 바뀔 수 있습니다. 올바른 ListModel 구현은 변경이 발생할 때마다 추가된 javax.swing.event.ListDataListener 집합에 알립니다. 이 변경들은 수정·추가·제거된 목록 인덱스의 범위를 식별하는 javax.swing.event.ListDataEvent로 특징지어집니다. JList의 ListUI는 모델을 들어 변경 사항에 따라 시각적 표현을 최신 상태로 유지하는 책임을 집니다. 간단하고 동적 내용의 JList 응용 프로그램은 DefaultListModel 클래스로 목록 요소를 유지할 수 있습니다. JList의 선택 상태는 또 다른 별도 모델인 ListSelectionModel 인스턴스가 관리합니다. JList는 생성 시 선택 모델로 초기화되며, 이 선택 모델을 조회하거나 설정하는 메서드도 포함합니다. 또한 JList는 선택을 쉽게 관리하는 편의 메서드를 제공합니다. setSelectedIndex, getSelectedValue 같은 메서드는 선택 모델과 상호작용하는 세부 사항을 처리하는 커버 메서드입니다. 기본적으로 JList의 선택 모델은 한 번에 어떤 항목 조합이든 선택할 수 있게 구성됩니다. 선택 모드 MULTIPLE_INTERVAL_SELECTION입니다. JList의 셀 페인팅은 cellRenderer 프로퍼티로 목록에 설치된 위임 객체인 셀 렌더러가 처리합니다. 렌더러는 셀을 그리는 데 "고무 도장"처럼 사용되는 java.awt.Component를 제공합니다. 기본 셀 렌더러는 JLabel 컴포넌트를 사용해 렌더링하며 목록의 ListUI가 설치합니다. JList는 직접 스크롤링을 구현하지 않습니다. 스크롤되는 목록을 만들려면 JScrollPane의 뷰포트 뷰로 만들면 됩니다: JScrollPane scrollPane = new JScrollPane(myList);. JList는 더블/트리플(또는 N회) 마우스 클릭에 대한 특별한 처리를 제공하지 않지만, 이 이벤트에 대해 작업하고 싶다면 MouseListener를 쉽게 추가할 수 있습니다. locationToIndex 메서드로 어떤 셀이 클릭되었는지 확인하세요. 경고: Swing은 스레드에 안전하지 않습니다. 이 클래스의 직렬화된 객체는 향후 Swing 버전과 호환되지 않을 수 있습니다. 현재 직렬화 지원은 단기 저장이나 같은 버전의 Swing을 실행하는 애플리케이션 간 RMI에 적합합니다. 1.4부터 모든 JavaBean의 장기 저장 지원이 java.beans 패키지에 추가되었으니 XMLEncoder를 참고하세요. 자세한 문서는 The Java Tutorial의 "How to Use Lists"를 참고하세요.

VERTICAL

public static final int VERTICAL

단일 열의 셀 수직 배치를 나타냅니다. 기본 레이아웃입니다.

  • 버전: 1.4

VERTICAL_WRAP

public static final int VERTICAL_WRAP

셀을 "신문" 열처럼 배치하여 셀을 위에서 아래로 채운 다음 왼쪽에서 오른쪽으로 채우는 것을 나타냅니다.

  • 버전: 1.4

HORIZONTAL_WRAP

public static final int HORIZONTAL_WRAP

셀을 왼쪽에서 오른쪽으로 채운 다음 위에서 아래로 채우는 "신문" 열 배치를 나타냅니다.

  • 버전: 1.4

JList

public JList()

빈 모델로 JList를 만듭니다.

JList

public JList(ListModel<E> dataModel)

지정된 모델로 JList를 만듭니다.

  • 매개변수: dataModel - 목록의 내용을 담는 모델

JList

public JList(E[] listData)

지정된 배열의 요소를 표시하는 JList를 만듭니다.

  • 매개변수: listData - JList에 표시할 데이터 배열

JList

public JList(Vector<? extends E> listData)

지정된 Vector의 요소를 표시하는 JList를 만듭니다.

  • 매개변수: listData - JList에 표시할 데이터를 담은 Vector

setModel

public void setModel(ListModel<E> model)

이 목록을 표시하는 데 사용할 모델을 설정합니다.

  • 매개변수: model - 목록 내용을 담는 모델

getModel

public ListModel<E> getModel()

이 목록을 표시하는 데 사용되는 모델을 반환합니다.

  • 반환값: 현재 모델

getSelectedIndex

public int getSelectedIndex()

첫 번째 선택 항목의 인덱스를 반환합니다.

  • 반환값: 첫 번째 선택 항목의 인덱스, 선택된 항목이 없으면 -1

setSelectedIndex

public void setSelectedIndex(int index)

지정된 인덱스에 있는 항목을 선택합니다.

  • 매개변수: index - 선택할 항목의 인덱스

getSelectedValue

public E getSelectedValue()

목록의 첫 번째 선택 값을 반환하거나, 선택된 항목이 없으면 null을 반환합니다.

  • 반환값: 첫 번째 선택 값

setSelectedValue

public void setSelectedValue(Object anObject, boolean shouldScroll)

지정된 객체에 해당하는 항목을 목록에서 선택합니다.

  • 매개변수: anObject - 선택할 객체
  • 매개변수: shouldScroll - 선택을 보이게 하려면 true

getSelectedValuesList

public List<E> getSelectedValuesList()

선택된 항목의 목록을 반환합니다.

  • 반환값: 선택된 값의 목록

addListSelectionListener

public void addListSelectionListener(ListSelectionListener listener)

선택 모델의 변경을 알리는 리스너를 추가합니다.

  • 매개변수: listener - 추가할 ListSelectionListener

setCellRenderer

public void setCellRenderer(ListCellRenderer<? super E> cellRenderer)

셀 렌더러를 설정합니다.

  • 매개변수: cellRenderer - 목록의 셀을 그리는 데 사용할 렌더러

getCellRenderer

public ListCellRenderer<? super E> getCellRenderer()

현재 셀 렌더러를 반환합니다.

  • 반환값: 현재 셀 렌더러

setLayoutOrientation

public void setLayoutOrientation(int layoutOrientation)

목록의 셀 레이아웃 방향을 설정합니다.

  • 매개변수: layoutOrientation - VERTICAL, HORIZONTAL_WRAP, VERTICAL_WRAP 중 하나

locationToIndex

public int locationToIndex(Point location)

지정된 위치에 있는 셀의 인덱스를 반환합니다.

  • 매개변수: location - 셀의 위치 좌표
  • 반환값: 지정된 위치를 포함하는 셀의 인덱스

indexToLocation

public Point indexToLocation(int index)

지정된 인덱스에 있는 셀의 원점을 반환합니다.

  • 매개변수: index - 셀의 인덱스
  • 반환값: 셀의 원점, 유효하지 않은 인덱스면 null

setFixedCellWidth

public void setFixedCellWidth(int width)

모든 셀의 고정 너비를 설정합니다.

  • 매개변수: width - 셀의 너비

setFixedCellHeight

public void setFixedCellHeight(int height)

모든 셀의 고정 높이를 설정합니다.

  • 매개변수: height - 셀의 높이

setPrototypeCellValue

public void setPrototypeCellValue(E prototypeCellValue)

fixedCellWidth와 fixedCellHeight 프로퍼티를 계산하는 데 사용할 프로토타입 셀 값을 설정합니다.

  • 매개변수: prototypeCellValue - 프로토타입 셀 값

더 알아보기