final JTable table = new JTable(sorter);
table.setRowHeight(30);
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
scrollPane = new JScrollPane(table);
当数据的列比较多时,出现在横向滚动条,滚动滚动条时表头不刷新.也就是数据内容和表头不一致了,表头画的重叠了.
大侠们帮帮我
table.setRowHeight(30);
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
scrollPane = new JScrollPane(table);
当数据的列比较多时,出现在横向滚动条,滚动滚动条时表头不刷新.也就是数据内容和表头不一致了,表头画的重叠了.
大侠们帮帮我
楼主【wuheng66888】截止到2008-06-27 15:06:39的历史汇总数据(不包括此帖):
发帖数:24 发帖分:1700
结贴数:23 结贴分:1580
未结数:1 未结分:120
结贴率:95.83 % 结分率:92.94 %
值得尊敬
你看看swingHacker 中有没有介绍
table.getTableHeader().setDefaultRenderer(allrender);
//设置table表头的高度 //加上下面这一句的话当JScrollPane出现滚动条时,滚动滚动条表头会出现不刷新的情况
// table.getTableHeader().setPreferredSize(new Dimension(0,40));
应该这样:
table.getTableHeader().setPreferredSize(new Dimension(table.getTableHeader().getPreferredSize().width,40));
就可以了
参考代码:import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Dimension;import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;public class TableInsertTest extends JFrame {
private JTable table = new JTable(); public TableInsertTest() {
TableModel dataModel = new DefaultTableModel() {
public int getColumnCount() {
return 10000;
} public int getRowCount() {
return 10;
} @Override
public Object getValueAt(int row, int column) {
return row * column;
}
};
this.table = new JTable(dataModel);
this.table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
this.table.getTableHeader().setPreferredSize(
new Dimension(this.table.getTableHeader().getPreferredSize().width, 30));
this.table.updateUI();
JScrollPane scrollpane = new JScrollPane(this.table);
Container contentPane = this.getContentPane();
contentPane.setLayout(new BorderLayout());
contentPane.add(scrollpane, BorderLayout.CENTER);
} /**
* @param args
*/
public static void main(String[] args) {
TableInsertTest frame = new TableInsertTest();
frame.setVisible(true);
frame.setSize(300, 300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}