My Opera is closing 3rd of March

mg12's Blog

paint my world ...

让 JTable 不显示表头

, ,

现在要处理一些 Excel 报表, 想要做一个没有表头的 JTable.
资料不好找, 网上找到了 3 种处理的方法:


1. 不放在 JScrollPane 上, 但是需要给表加个边框. [ 来源 ]
table.setBorder(BorderFactory.createEtchedBorder());

panel.add(table);

缺点: 没有滚动条.


2. 放在 JScrollPane 上, 但是把表头隐藏. [ 来源 ]
table.getTableHeader().setVisible(false);

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

缺点: 在本来表头的位置出现一片空白, 难看.
改进: 如果在前面将表头内容全部设为 "", 就可以去掉这片空白, 效果和 3 一样.
tableHeader = new String[]{"", "", "", "", "", "", "",""};
table = new JTable(tableData, tableHeader);
table.getTableHeader().setVisible(false);

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



3. 为表头设置一个 CellRenderer, 这个 CellRenderer 的预选高度为 0. [ 来源 ]
DefaultTableCellRenderer renderer = new DefaultTableCellRenderer();
renderer.setPreferredSize(new Dimension(0, 0));
table.getTableHeader().setDefaultRenderer(renderer);

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

这是目前我正在用的, 正是我想要的效果.

火箭难破第一轮魔咒用 HTML 来解决预览问题

Comments

Joedecode Monday, May 7, 2007 1:20:49 PM

...晕.完全看不懂..我闪...

Unregistered user Monday, January 4, 2010 5:34:45 AM

Duoglas writes: 太感谢了 写的非常清晰

Write a comment

New comments have been disabled for this post.