Computer >> 컴퓨터 >  >> 프로그램 작성 >> Java

Java에서 JTable의 테이블 헤더를 어떻게 표시하거나 숨길 수 있습니까?


JTable JComponent 의 하위 클래스입니다. 클래스 복잡한 데이터 구조를 표시합니다. JTable은 MVC(Model View Controller) 디자인 패턴을 따를 수 있습니다. 행과 열에 데이터를 표시합니다. 기본 테이블 모델 클래스는 AbstractTableModel 의 하위 클래스입니다. 행과 열을 추가하는 데 사용할 수 있습니다. JTable에 동적으로. DefaultTableCellRenderer 클래스는 JLabel 을 확장할 수 있습니다. 클래스이며 이미지를 추가하는 데 사용할 수 있습니다. , 컬러 텍스트 JTable 셀 내부 등. 우리는 숨길 수 있습니다 JTable 의 테이블 헤더 JCheckBox를 선택 취소하여 클릭하여 JTable의 테이블 헤더를 표시합니다. JCheckBox .

예시

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);
   }
}

출력

표 머리글 표시

Java에서 JTable의 테이블 헤더를 어떻게 표시하거나 숨길 수 있습니까?

표 머리글 숨기기

Java에서 JTable의 테이블 헤더를 어떻게 표시하거나 숨길 수 있습니까?