把JTable的表頭也就是標題行給隱藏掉
阿新 • • 發佈:2019-02-17
主要有以下三種方法:
1. 不放在 JScrollPane 上, 但是需要給表加個邊框.
[java] view plain copy print?- table.setBorder(BorderFactory.createEtchedBorder());
- panel.add(table);
table.setBorder(BorderFactory.createEtchedBorder());
panel.add(table);
2. 放在 JScrollPane 上, 但是把表頭隱藏..
[java] view plain copy print?- table.getTableHeader().setVisible(
- tableScrollPane.setViewportView(table);
- panel.add(tableScrollPane);
table.getTableHeader().setVisible(false);
tableScrollPane.setViewportView(table);
panel.add(tableScrollPane);
缺點: 在本來表頭的位置出現一片空白, 難看. 改進: 如果在前面將表頭內容全部設為 "", 就可以去掉這片空白, 效果和 3 一樣.(http://www.my400800.cn)
[java] view plain- tableHeader = new String[]{"", "", "", "", "", "", "",""};
- table = new JTable(tableData, tableHeader);
- table.getTableHeader().setVisible(false);
- tableScrollPane.setViewportView(table);
- panel.add(tableScrollPane);
tableHeader = new String[]{"", "", "", "", "", "", "",""}; table = new JTable(tableData, tableHeader); table.getTableHeader().setVisible(false); tableScrollPane.setViewportView(table); panel.add(tableScrollPane);
3. 為表頭設定一個 CellRenderer, 這個 CellRenderer 的預選高度為 0. .
[java] view plain copy print?- jtb_right_dataList.getTableHeader().setVisible(false);
- DefaultTableCellRenderer renderer = new DefaultTableCellRenderer();
- renderer.setPreferredSize(new Dimension(0, 0));
- jtb_right_dataList.getTableHeader().setDefaultRenderer(renderer);
jtb_right_dataList.getTableHeader().setVisible(false);
DefaultTableCellRenderer renderer = new DefaultTableCellRenderer();
renderer.setPreferredSize(new Dimension(0, 0));
jtb_right_dataList.getTableHeader().setDefaultRenderer(renderer);
這是目前我正在用的, 正是我想要的效果.