Làm thế nào để bạn tạo một bảng “JTable” trong Java?

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


JTable là một lớp được sử dụng trong Java để tạo các bảng tương tác mà người dùng có thể chỉnh sửa nhờ các thành phần API Swing của ngôn ngữ lập trình đó. Về cơ bản, nó bao gồm một giao diện đồ họa cho phép bạn biểu diễn dữ liệu dưới dạng bảng, cho phép bạn xem và tương tác với dữ liệu được GUI hiển thị theo nhiều cách khác nhau, bao gồm, trong số những cách khác, chỉnh sửa nội dung của bảng, sửa đổi kích thước của các cột và hàng, sắp xếp các cột khác nhau theo ý muốn.

Tạo một JTable đơn giản

Ví dụ này tìm cách xây dựng một bảng đơn giản với các thông tin sau:

Tên đầu tiên Họ tình dục Tuổi
Adriana Dừng lại F hai mươi mốt
Juan mực ống tôi 40
hoa hồng bernard F 67
Juliana perez F 36
Người israel gonzalez tôi 36

Bảng này sẽ được hiển thị trong cửa sổ có thanh cuộn. Khi sử dụng JTable để trình bày dữ liệu ở dạng bảng, chúng ta phải tính đến việc JTable chỉ là giao diện đồ họa và nó không chứa dữ liệu sẽ được trình bày. Dữ liệu này phải được đưa vào lớp mô hình. Nói cách khác, để bảng của chúng ta có thể hiển thị bất kỳ dữ liệu nào, trước tiên chúng ta phải khởi tạo một mô hình dữ liệu và sau đó chuyển mô hình này tới JTable bằng cách sử dụng hàm tạo.

Tạo khung

Chúng ta phải tính đến việc JTable cần một khung để có thể hiển thị nó, vì vậy khung này phải được tạo trước và bao gồm các thông tin như vị trí và kích thước của khung, cũng như chỉ định xem khung có được hiển thị hay không .

Một mã chung để đạt được điều này sẽ là:

lớp công khai JTable_Use {

                public static void main(String[] args) {   

                JFrame myframe=new TableFrame() ;

                               myframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE) ;

                               myframe.setVisible(true) ;

                }

}

lớp TableFrame mở rộng JFrame {

                khung bảng công khai () {

                               setTitle(“Dữ liệu người dùng”) ;

                               setBound(200,200,700,500) ;

                }

}

Đoạn mã trên tạo một khung hiển thị nằm ở vị trí 200×200 và có kích thước 700×500 với tiêu đề Dữ liệu người dùng.

Bây giờ, chúng ta sẽ tạo một bảng chứa dữ liệu về người dùng. Dữ liệu này sẽ bao gồm, cho các mục đích của ví dụ này, tên, họ, giới tính và tuổi.

Có nhiều hàm tạo mà chúng ta có thể sử dụng để thêm dữ liệu vào bảng mà chúng ta đang tạo. Một trong những hàm tạo đơn giản nhất cho phép lấy hai mảng dữ liệu làm đối số:

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

Như bạn có thể thấy, đây là một hàm tạo đơn giản cho JTable , lấy tham số đầu tiên làm đối số là một mảng hai chiều kiểu Object , trong đó dữ liệu tương ứng với mỗi hàng sẽ được bao gồm ( rowData ) và tham số thứ hai cũng vậy. nó là một mảng nhưng có một chiều, cũng thuộc loại Object , trong đó sẽ bao gồm các tiêu đề hoặc tên của các cột ( columnName ).

Nói tóm lại, nếu chúng ta muốn sử dụng hàm tạo này, chúng ta phải khai báo hai mảng , một mảng có hai chiều và một mảng có một chiều. Chúng tôi làm điều này bên trong lớp xây dựng khung được hiển thị ở trên.

Chúng ta sẽ bắt đầu bằng cách khai báo mảng tương ứng với các tiêu đề cột. Vì chúng là văn bản nên chúng sẽ thuộc loại String . Dưới đây, chúng ta sẽ khai báo mảng hai chiều tương ứng với dữ liệu sẽ hiển thị ở mỗi hàng của bảng. Khai báo mảng trông như thế này:

                chuỗi riêng tư [] columnheads={“Tên”, “Họ”, “Giới tính”, “Tuổi”} ;

                chuỗi riêng tư [] [] userData={

                               {“Adriana”, “Dừng”, “F”, “21”},

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

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

                               {“Juliana”, “Perez”, “F”, “36”},

                               {“Israel”, “González”, “M”, “36”}

                };

Trong mã này, chúng tôi đã đặt tên cho mảng chứa tên của các cột “cabezadasColumnas” và “dataUsers” mảng hai chiều chứa dữ liệu của năm người dùng sẽ được đưa vào bảng.

Bây giờ chúng ta đã có dữ liệu mà chúng ta muốn JTable hiển thị, chúng ta chuyển sang sử dụng hàm tạo để truyền dữ liệu này vào JTable . Chúng tôi làm điều này trong khuôn khổ mà chúng tôi đã tạo trước đó. Chúng ta phải đặt tên cho bảng của mình, vì vậy chúng ta sẽ gọi nó, chẳng hạn như userTable:

JTable tablaUsuarios=new JTable(dataUsers, headersColumns) ;

Cách thêm thanh cuộn và định tâm

Tại thời điểm này, chúng ta đã có một JTable hiển thị một bảng đơn giản với 4 cột và 6 hàng, trong đó có một hàng đầu tiên với các tiêu đề cột theo sau là 5 hàng với dữ liệu của 5 người dùng. Tuy nhiên, bảng này có thể không vừa với khung 700×500 mà chúng tôi đã tạo lúc đầu hoặc nếu hiện tại nó vừa với thì sau này chúng tôi có thể thêm dữ liệu về nhiều người dùng hơn vào bảng và cuối cùng bảng này sẽ không vừa. Trong trường hợp này, sẽ rất hữu ích khi thêm các thanh cuộn để đảm bảo rằng tất cả thông tin trong bảng đều hiển thị.

Chúng tôi làm điều này thông qua JScrollPane . Ngoài ra, cũng thuận tiện để chỉ định vị trí của bảng của chúng tôi trong khung. Đối với điều này, chúng tôi sử dụng BorderLayout , như sau:

add(JScrollPane mới(userTable), BorderLayout.CENTER) ;

mã cuối cùng

Sau khi thêm tất cả các phần vào mã, nó sẽ trông như thế này:

lớp công khai JTable_Use {

                public static void main(String[] args) {   

                JFrame myframe=new TableFrame() ;

                               myframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE) ;

                               myframe.setVisible(true) ;

                }

}

lớp TableFrame mở rộng JFrame {

                khung bảng công khai () {

                               setTitle(“Dữ liệu người dùng”) ;

                               setBound(200,200,500,500) ;

                               JTable tablaUsuarios=new JTable(dataUsers, headersColumns) ;

                               add(JScrollPane mới(userTable), BorderLayout.CENTER) ;

                }

                chuỗi riêng tư [] columnheads={“Tên”, “Họ”, “Giới tính”, “Tuổi”} ;

                chuỗi riêng tư [] [] userData={

                               {“Adriana”, “Dừng”, “F”, “21”},

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

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

                               {“Juliana”, “Perez”, “F”, “36”},

                               {“Israel”, “González”, “M”, “36”}

                };

}

Làm thế nào để thêm các chức năng khác?

Ngoài thanh cuộn, JTable cho phép bạn thêm vô số chức năng cho các ứng dụng khác nhau. Bạn có thể thêm khả năng cho người dùng sắp xếp các hàng theo ý thích của mình, bạn có thể sửa đổi giao diện của bảng bằng cách sửa đổi màu nền của các ô, hiển thị hoặc không hiển thị đường viền, v.v.

Người giới thiệu

Abellán, J. (2007a, ngày 4 tháng 2). Ví dụ tiểu dụng TableModel cho JTable. Lấy từ http://www.chuidiang.org/java/tablas/tablamodelo/applettabla.php

Abellán, J. (2007b, ngày 4 tháng 2). Ví dụ về TableModel trong JTable. Lấy từ http://www.chuidiang.org/java/tablas/tablamodelo/tablamodelo.php

Thuốc máy tính [pildorasinformaticas]. (2017, ngày 20 tháng 9). khóa học java Phụ lục III. JTable I. Video 267 [Tập tin video]. Đã phục hồi từ https://www.youtube.com/watch?v=yH_g6QGFqes

Sensei, J. (2011, ngày 24 tháng 1). Cách chọn một hàng từ Java JTable. Truy cập ngày 13 tháng 9 năm 2021, từ http://jedicerocool.blogspot.com/2011/01/como-seleccionar-una-fila-de-un-jtable.html

-Quảng cáo-

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

Artículos relacionados