Java에서 “JTable” 테이블을 어떻게 생성합니까?

Artículo revisado y aprobado por nuestro equipo editorial, siguiendo los criterios de redacción y edición de YuBrain.

JTable은 Java 에서 해당 프로그래밍 언어의 Swing API 구성 요소 덕분에 사용자가 편집할 수 있는 대화형 테이블을 만드는 데 사용되는 클래스입니다. 기본적으로 테이블 형식으로 데이터를 표시할 수 있는 그래픽 인터페이스로 구성되어 테이블 내용 편집, 수정 등 다양한 방식으로 GUI에 표시된 데이터를 보고 상호 작용할 수 있습니다. 열과 행의 치수, 마음대로 다른 열을 정렬합니다.

간단한 JTable 만들기

이 예에서는 다음 정보를 사용하여 간단한 테이블을 작성하려고 합니다.

이름 섹스 나이
아드리아나 멈추다 에프 이십 일
후안 오징어 40
로잘리아 남자 이름 에프 67
줄리아나 페레즈 에프 36
이스라엘 곤잘레스 36

이 테이블은 스크롤 막대가 있는 창에 표시됩니다. JTable을 사용하여 표 형식으로 데이터를 표시할 때 JTable 은 그래픽 인터페이스일 뿐이며 표시할 데이터가 포함되어 있지 않다는 점을 고려해야 합니다 . 이 데이터는 모델 클래스에 포함되어야 합니다. 즉, 테이블에 데이터를 표시하려면 먼저 데이터 모델을 인스턴스화한 다음 생성자를 사용하여 이 모델을 JTable 에 전달해야 합니다.

프레임 만들기

우리는 JTable 이 표시될 수 있는 프레임이 필요하다는 점을 고려해야 하므로 프레임을 먼저 생성하고 프레임의 위치 및 크기와 같은 정보를 포함하고 프레임을 표시할지 여부를 지정해야 합니다. .

이를 달성하기 위한 일반 코드는 다음과 같습니다.

공개 클래스 JTable_Use {

                공개 정적 무효 main(String[] args) {   

                JFrame myframe=new TableFrame() ;

                               myframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE) ;

                               myframe.setVisible(true) ;

                }

}

클래스 TableFrame은 JFrame을 확장합니다 {

                공개 TableFrame() {

                               setTitle(“사용자 데이터”) ;

                               setBounds(200,200,700,500) ;

                }

}

위의 코드는 위치 200×200에 크기가 700×500이고 제목이 User Data인 가시적 프레임을 생성합니다.

이제 사용자에 대한 데이터를 포함할 테이블을 생성합니다. 이 데이터에는 이 예의 목적을 위해 이름, 성, 성별 및 나이가 포함됩니다.

생성 중인 테이블에 데이터를 추가하는 데 사용할 수 있는 생성자가 여러 개 있습니다. 가장 간단한 생성자 중 하나는 두 개의 데이터 배열을 인수로 사용할 수 있습니다.

JTable(Object[] [] rowData, Object[] columnNames)

보시다시피 이것은 각 행에 해당하는 데이터가 포함될 Object 유형의 2차원 배열 인 첫 번째 매개변수 ( rowData )와 두 번째 매개변수를 인수로 취하는 JTable 의 간단한 생성자입니다. 이것은 배열 이지만 열( columnName ) 의 헤더 또는 이름이 포함 되는 Object 유형의 하나의 차원을 포함합니다.

요컨대, 이 생성자를 사용하려면 두 개의 배열을 선언해야 합니다 . 하나는 2차원이고 다른 하나는 1차원입니다. 위에 표시된 프레임워크를 빌드하는 클래스 내에서 이 작업을 수행합니다.

열 헤더에 해당하는 배열을 선언하는 것으로 시작하겠습니다 . 텍스트이기 때문에 String 유형이 됩니다 . 그 아래에는 테이블의 각 행에 표시될 데이터에 해당하는 2차원 배열을 선언합니다 . 배열 선언은 다음과 같습니다.

                private String [] columnheads={“이름”, “성”, “성별”, “나이”} ;

                개인 문자열 [] [] userData={

                               {“아드리아나”, “중지”, “F”, “21”},

                               {«John», «Calamaro», «M», «40»},

                               {«Rosalía», «Bernard», « F « , « 67 « },

                               {“줄리아나”, “페레즈”, “F”, “36”},

                               {“이스라엘”, “곤살레스”, “M”, “36”}

                };

이 코드에서는 “cabezadasColumnas” 및 “dataUsers” 열의 이름을 포함하는 배열 을 테이블에 포함될 5명의 사용자 데이터를 포함하는 2차원 배열 로 명명했습니다 .

이제 JTable 에 표시 할 데이터가 있으므로 생성자를 사용하여 이 데이터를 JTable 에 전달합니다 . 이전에 만든 프레임워크 내에서 이 작업을 수행합니다. 테이블에 이름을 지정해야 하므로 이 예에서는 userTable이라고 합니다.

JTable tablaUsuarios=new JTable(dataUsers, headersColumns) ;

스크롤바 및 센터링을 추가하는 방법

이 시점에서 우리는 이미 열 헤더가 있는 첫 번째 행과 5명의 사용자 데이터가 있는 5개의 행이 있는 4개의 열과 6개의 행이 있는 간단한 테이블을 표시하는 JTable을 가지고 있습니다 . 그러나 이 테이블은 처음에 만든 700×500 프레임에 맞지 않을 수 있습니다. 또는 지금 맞는 경우 나중에 더 많은 사용자에 대한 데이터를 추가하여 결국 맞지 않을 수 있습니다. 이 경우 테이블의 모든 정보를 볼 수 있도록 스크롤 막대를 추가하는 것이 유용합니다.

우리는 JScrollPane 을 통해 이를 수행합니다 . 또한 프레임 내에서 테이블의 위치를 ​​지정하는 것도 편리합니다. 이를 위해 다음과 같이 BorderLayout 을 사용합니다.

add(new JScrollPane(userTable), BorderLayout.CENTER) ;

최종 코드

모든 부분을 코드에 추가하면 다음과 같아야 합니다.

공개 클래스 JTable_Use {

                공개 정적 무효 메인(문자열[] 인수) {   

                JFrame myframe=new TableFrame() ;

                               myframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE) ;

                               myframe.setVisible(true) ;

                }

}

클래스 TableFrame은 JFrame을 확장합니다 {

                공개 TableFrame() {

                               setTitle(“사용자 데이터”) ;

                               setBounds(200,200,500,500) ;

                               JTable tablaUsuarios=new JTable(dataUsers, headersColumns) ;

                               add(new JScrollPane(userTable), BorderLayout.CENTER) ;

                }

                private String [] columnheads={“이름”, “성”, “성별”, “나이”} ;

                개인 문자열 [] [] userData={

                               {“아드리아나”, “중지”, “F”, “21”},

                               {«John», «Calamaro», «M», «40»},

                               {«Rosalía», «Bernard», « F « , « 67 « },

                               {“줄리아나”, “페레즈”, “F”, “36”},

                               {“이스라엘”, “곤살레스”, “M”, “36”}

                };

}

다른 기능을 추가하는 방법?

스크롤 막대 외에도 JTable을 사용하면 다양한 응용 프로그램에 대한 무한한 기능을 추가할 수 있습니다. 사용자가 원하는 대로 행을 정렬할 수 있는 가능성을 추가할 수 있고, 셀의 배경색을 수정하고 테두리를 표시하거나 표시하지 않는 등 테이블의 모양을 수정할 수 있습니다.

참조

Abellán, J. (2007a, 2월 4일). JTable용 TableModel 애플릿의 예. http://www.chuidiang.org/java/tablas/tablamodelo/applettabla.php에서 가져옴

Abellán, J. (2007b, 2월 4일). JTable의 TableModel의 예. http://www.chuidiang.org/java/tablas/tablamodelo/tablamodelo.php에서 가져옴

컴퓨터 알약[pildorasinformaticas]. (2017년 9월 20일). 자바 코스 부록 III. JTable I. 비디오 267 [비디오 파일]. https://www.youtube.com/watch?v=yH_g6QGFqes에서 복구됨

Sensei, J. (2011년 1월 24일). Java JTable에서 행을 선택하는 방법. http://jedicerocool.blogspot.com/2011/01/como-seleccionar-una-fila-de-un-jtable.html에서 2021년 9월 13일에 검색함

mm
Israel Parada (Licentiate,Professor ULA)
(Licenciado en Química) - AUTOR. Profesor universitario de Química. Divulgador científico.

Artículos relacionados