Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Java

Cách hiển thị/ẩn header của JTable trong Java

JTable là một lớp con của JComponent hiển thị cấu trúc dữ liệu phức tạp. JTable tuân theo Model View Controller (MVC) để hiển thị dữ liệu theo hàng và cột. DefaultTableModel là lớp con của AbstractTableModel thêm hàng và cột động cho JTable. DefaultTableCellRenderer kế thừa JLabel thêm hình ảnh, văn bản có màu vào ô JTable. Chúng ta có thể ẩn header JTable bằng bỏ chọn JCheckBox và hiển thị header bằng chọn JCheckBox.

Ví dụ

import java.awt.*;
import javax.swing.*;
import javax.swing.table.*;

public final class JTableHeaderHideTest extends JPanel {
    private final String[] columnNames = {"String", "Integer", "Boolean"};
    private final Object[][] data = {{"Tutorials Point", 100, true}, {"Tutorix", 200, false},
        {"Tutorials Point", 300, true}, {"Tutorix", 400, false}};
    private final TableModel model = new DefaultTableModel(data, columnNames) {
        @Override
        public Class getColumnClass(int column) {
            return getValueAt(0, column).getClass();
        }
    };
    private final JTable table = new JTable(model);
    private final JScrollPane scrollPane = new JScrollPane(table);

    public JTableHeaderHideTest() {
        super(new BorderLayout());
        add(scrollPane);
        JCheckBox check = new JCheckBox("JTableHeader visible: ", true);
        check.addActionListener(ae -> {
            JCheckBox cb = (JCheckBox) ae.getSource();
            scrollPane.getColumnHeader().setVisible(cb.isSelected());
            scrollPane.revalidate();
        });
        add(check, BorderLayout.NORTH);
    }

    public static void main(String[] args) {
        JFrame frame = new JFrame("JTableHeaderHide Test");
        frame.setSize(375, 250);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.getContentPane().add(new JTableHeaderHideTest());
        frame.setLocationRelativeTo(null);
        frame.setVisible(true);
    }
}

Kết quả

Hiển thị Header

Cách hiển thị/ẩn header của JTable trong Java

Ẩn Header

Cách hiển thị/ẩn header của JTable trong Java