Hướng Dẫn Sử Dụng JTable Trong Java Swing - Deft Blog
Có thể bạn quan tâm
Mục lục
- 1 Khởi tạo JTable
- 2 Sắp xếp trong JTable
- 3 Filter trong JTable
JTable là một trong những thành phần quan trọng của Java Swing package được sử dụng để hiển thị và chỉnh sửa dữ liệu theo dạng Table (Dữ liệu được trình bày theo dạng hàng và cột). Nó tương tự như một bảng tính trong excel file.
Khởi tạo JTable
JTable cung cấp một số constructor cho phép khởi tạo một JTable instance như sau:
- JTable() – Khởi tạo một JTable rỗng.
- JTable(int rows, int cols) – Khởi tạo một JTable với số dòng và cột được chỉ định.
- JTable(Object[][] data, Object []Column) – Khởi tạo một Jtable với các tên cột được chỉ định trong Object[] Column và dữ liệu trong Object[][] data.
Một số hàm thường xuyên sử dụng trong JTable:
- addColumn(TableColumn column) – Thêm một cột vào cuối bảng.
- editCellAt(int row, int col) – Chỉnh sửa ô giao nhau của cột số col và hàng số row, nếu các chỉ số đã cho hợp lệ và ô tương ứng có thể chỉnh sửa được.
- setValueAt(Object value, int row, int col) – Cập nhật giá trị tạo ô có số cột là col và hàng row thành giá trị value mới.
- clearSelection() – Bỏ chọn tất cả các cột và hàng trước đó đã được chọn.
Ví dụ tạo một bảng gồm 3 cột Name, Roll Number và Department. Lưu ý trong đây mình có sử dụng JScrollPane để cho phép JTable có thể cuộn trong trường hợp nó chứa nhiều dữ liệu.
import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; class JTableExample { public static void main(String[] args) { JFrame jFrame = new JFrame(); // Frame Title jFrame.setTitle("JTable Example"); // Data to be displayed in the JTable String[][] data = { { "Kundan Kumar Jha", "4031", "CSE" }, { "Anand Jha", "6014", "IT" } }; // Column Names String[] columnNames = { "Name", "Roll Number", "Department" }; // Initializing the JTable JTable jTable = new JTable(data, columnNames); jTable.setBounds(30, 40, 200, 300); // adding it to JScrollPane JScrollPane sp = new JScrollPane(jTable); jFrame.add(sp); // Frame Size jFrame.setSize(500, 200); jFrame.setLocationRelativeTo(null); jFrame.setVisible(true); } }Output

Sắp xếp trong JTable
Chắc hẵn dữ liệu dạng bảng như JTable nhu cầu sắp xếp dữ liệu là vô cùng cần thiết rồi phải không nào. Việc này chúng ta có thể làm khá đơn giản với setAutoCreateRowSorter() method được cung cấp sẵn trong JTable.
import java.awt.*; import javax.swing.*; class JTableSorterTest { public static void main(String[] args) { JFrame jFrame = new JFrame(); jFrame.setTitle("JTableHeaderHide Test"); String[] columnNames = {"Name", "Age", "City"}; Object[][] data = {{"Raja", "35", "Hyderabad"}, {"Adithya", "25", "Chennai"}, {"Vineet", "23", "Mumbai"}, {"Archana", "32", "Pune"}, {"Krishna", "30", "Kolkata"}}; JTable table = new JTable(data, columnNames); JScrollPane scrollPane = new JScrollPane(table); // Cho phep table sap xep table.setAutoCreateRowSorter(true); jFrame.add(scrollPane, BorderLayout.CENTER); jFrame.setSize(375, 250); jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); jFrame.setLocationRelativeTo(null); jFrame.setVisible(true); } }
Output
Filter trong JTable
Chúng ta có thể lọc một bảng bằng phương thức setRowFilter () của lớp TableRowSorter.
import java.awt.*; import java.awt.event.*; import java.util.regex.*; import javax.swing.*; import javax.swing.table.*; class FilterTableTest { public static void main(String args[]) { JTable table; TableModel model; JFrame jFrame = new JFrame(); jFrame.setTitle("FilterTable Test"); Object rows[][] = {{"Adithya", "Content Developer", 25000}, {"Jai", "SME", 30000}, {"Chaitanya", "Java Engineer", 45000}, {"Ramesh", "Scala Developer", 40000}, {"Ravi", "SAP Consultant", 70000}}; Object columns[] = {"Name", "Designation", "Salary"}; model = new DefaultTableModel(rows, columns) { public Class getColumnClass(int column) { Class returnValue; if ((column >= 0) && (column < getColumnCount())) { returnValue = getValueAt(0, column).getClass(); } else { returnValue = Object.class; } return returnValue; } }; table = new JTable(model); final TableRowSorter<TableModel> sorter = new TableRowSorter<TableModel>(model); table.setRowSorter(sorter); jFrame.add(new JScrollPane(table), BorderLayout.CENTER); JPanel panel = new JPanel(new BorderLayout()); JLabel label = new JLabel("Filter"); panel.add(label, BorderLayout.WEST); final JTextField filterText = new JTextField(""); panel.add(filterText, BorderLayout.CENTER); jFrame.add(panel, BorderLayout.NORTH); JButton button = new JButton("Filter"); button.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { String text = filterText.getText(); if (text.length() == 0) { sorter.setRowFilter(null); } else { try { sorter.setRowFilter(RowFilter.regexFilter(text)); } catch (PatternSyntaxException pse) { System.out.println("Bad regex pattern"); } } } }); jFrame.add(button, BorderLayout.SOUTH); jFrame.setSize(400, 300); jFrame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); jFrame.setLocationRelativeTo(null); jFrame.setVisible(true); } }Output

Nguồn tham khảo
https://www.tutorialspoint.com/how-can-we-sort-a-jtable-on-a-particular-column-in-java
https://www.geeksforgeeks.org/java-swing-jtable/
https://www.tutorialspoint.com/how-can-we-filter-a-jtable-in-java
Từ khóa » Thao Tác Với Jtable
-
Hướng Dẫn Thao Tác Với JTable Trong Java | Lập Trình Java Swing
-
Java: Cách Sử Dụng Bảng (Table) | V1Study
-
Lớp JTable Trong Java Swing - Học Lập Trình Java Online - VietTuts
-
JTable Với Các Thao Tác CRUD Trên Cơ Sở Dữ Liệu
-
JTable Trong Java:Cách Sử Dụng Cơ Bản | I Like Programming
-
[JSE Guide]Thêm-xóa-sửa Với Jtable - Cộng đồng Java Việt Nam
-
Java Swing 008: Tạo Bảng Và Chèn Dữ Liệu Vào Bảng - YouTube
-
Sử Dụng JTable Của Swing Trong Java (phần 2) | Coder Sơn Trang
-
Tạo Một Bảng Java Bằng Cách Sử Dụng JTable - EFERRIT.COM
-
[JavaSQL] Bài 3- Truy Vấn CSDL Và Hiển Thị Lên JTable
-
Chủ đề: Thao Tác Với JTable Help - Diễn Đàn Tin Học
-
Làm Cách Nào để Thêm Hàng Trong JTable? - HelpEx
-
Sử Dụng JTable Của Swing Trong Java (phần 6) | Coder Sơn Trang