jtable vector 예제

| 0

테이블 모델에는 테이블 데이터가 변경될 때마다 알림을 받는 리스너 집합이 있을 수 있습니다. 리스너는 테이블모델리퍼의 인스턴스입니다. 다음 예제 코드에서 SimpleTableDemo는 이러한 수신기를 포함하도록 확장됩니다. 새 코드가 굵게 표시됩니다. 후속 예제에서는 텍스트 필드가 변경될 때마다 newFilter()가 호출됩니다. 사용자가 복잡한 정규식을 입력하면 시도… catch는 구문 예외가 입력을 방해하지 못하도록 합니다. 다음은 도구 설명의 모양의 예입니다: 일반 스윙 응용 프로그램에서 인쇄를 호출하면 표준 인쇄 대화 상자가 나타납니다. (헤드리스 어플리케이션에서는 테이블이 간단하게 인쇄됩니다.) 반환 값은 사용자가 인쇄 작업을 진행했는지 또는 취소했는지 를 나타냅니다.

JTable.print는 java.awt.print.Printer예외를 던질 수 있습니다. 위의 예는 시도를 사용하는 이유입니다 … 잡을. 코드는 매우 간단 합니다., 아마도 변환에 대 한 호출을 제외 하 고ColumnIndexToModel. 사용자가 열을 이동하는 경우 열에 대한 뷰 의 인덱스가 열에 대한 모델 의 인덱스와 일치하지 않기 때문에 이 호출이 필요합니다. 예를 들어 사용자는 채식주의 자 열(모델이 인덱스 4로 간주)을 드래그하여 보기 인덱스 0의 첫 번째 열로 표시할 수 있습니다. prepareRenderer는 뷰 인덱스를 제공하므로 의도한 열이 선택되었는지 확인할 수 있도록 뷰 인덱스를 모델 인덱스로 변환해야 합니다. 사용자 입력 문자열의 자동 검사는 기본 편집기에서 셀의 열과 연결된 클래스의 새 인스턴스를 만들려고 할 때 발생합니다.

기본 편집기는 String을 인수로 사용하는 생성자사용을 사용하여 이 인스턴스를 만듭니다. 예를 들어 셀에 정수 유형이 있는 열에서 사용자가 “123”을 입력하면 기본 편집기는 새 정수(“123”)와 동일한 코드를 사용하여 해당 정수를 만듭니다. 생성자가 예외를 throw하면 셀의 윤곽선이 빨간색으로 바뀌고 포커스가 셀 밖으로 이동하도록 거부합니다. 열 데이터 형식으로 사용되는 클래스를 구현하는 경우 클래스가 String 형식의 단일 인수를 사용하는 생성자를 제공하는 경우 기본 편집기에서 사용할 수 있습니다. 이 예제에서는 6개의 열과 5개의 행을 포함하는 학생의 학업 기록을 포함하는 JTable을 사용하여 테이블을 만듭니다. 우리는 철저하게 코드를 방문하고 테이블을 만드는 방법을 배울 것입니다. 모델은 배열, 벡터 또는 해시 맵에 데이터를 보유하거나 데이터베이스와 같은 외부 소스에서 데이터를 얻을 수 있습니다. 실행 시 데이터를 생성할 수도 있습니다. 예를 들어 TableDemo의 #년 열에 있는 각 셀에는 특히 정수 개체인 숫자 데이터가 포함되어 있습니다.

기본적으로 숫자 포함 열의 셀 렌더러는 단일 JLabel 인스턴스를 사용하여 열의 셀에 오른쪽 정렬된 적절한 숫자를 그립니다. 사용자가 셀 중 하나를 편집하기 시작하면 기본 셀 편집기는 오른쪽 정렬된 JTextField를 사용하여 셀 편집을 제어합니다. 테이블 정렬기는 결과 순서를 다시 지정하는 것 외에도 표시할 행을 지정할 수도 있습니다. 이를 필터링이라고 합니다. TableRowSorter는 javax.swing.RowFilter 개체를 사용하여 필터링을 구현합니다. RowFilter는 일반적인 종류의 필터를 만드는 여러 팩터리 메서드를 구현합니다. 예를 들어, regexFilter 정규식에 따라 필터링 하는 행 필터를 반환 합니다. 앞의 코드에서 볼 수 있듯이 테이블의 각 열은 TableColumn 개체로 표시됩니다. TableColumn은 열의 최소, 기본 설정 및 최대 너비에 대한 getter 및 setter 메서드와 현재 너비를 가져오는 메서드를 제공합니다.

셀의 내용을 그리는 데 필요한 공간의 근사치를 기반으로 셀 너비를 설정하는 예는 TableRenderDemo.java의 initColumnSizes 메서드를 참조하십시오.

Follow admin:

Latest posts from