1. 不放在 JScrollPane 上, 但是需要给表加个边框.
- table.setBorder(BorderFactory.createEtchedBorder());
- panel.add(table);
table.setBorder(BorderFactory.createEtchedBorder());
panel.add(table);
2. 放在 JScrollPane 上, 但是把表头隐藏..
-
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
)
-
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. .
-
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);
这是目前我正在用的, 正是我想要的效果.