您的位置:首页 > 其它

把JTable的表头也就是标题行给隐藏掉

2016-07-19 15:04 381 查看
主要有以下三种方法:

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(false);  
  
tableScrollPane.setViewportView(table);  
panel.add(tableScrollPane);  



table.getTableHeader().setVisible(false);

tableScrollPane.setViewportView(table);
panel.add(tableScrollPane);

 

缺点: 在本来表头的位置出现一片空白, 难看. 改进: 如果在前面将表头内容全部设为 "", 就可以去掉这片空白, 效果和 3 一样.(http://www.my400800.cn)

[java]
view plain
copy

print?

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);
 
这是目前我正在用的, 正是我想要的效果.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: