如何在Java中顯示/隱藏JTable的表頭?


JTableJComponent類的子類,用於顯示覆雜的資料結構。JTable可以遵循模型-檢視-控制器(MVC)設計模式來顯示行列資料。DefaultTableModel類是AbstractTableModel的子類,可用於動態地向JTable新增行和列DefaultTableCellRenderer類可以擴充套件JLabel類,用於在JTable單元格中新增影像彩色文字等。我們可以透過取消選中JCheckBox隱藏JTable的表頭,並透過點選JCheckBox來顯示JTable的表頭。

示例

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

輸出

顯示錶頭

隱藏表頭

更新於: 2020年2月10日

3K+ 瀏覽量

啟動你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.