首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

JTAble与JScrollpane滚动条显示有关问题

2012-07-30 
JTAble与JScrollpane滚动条显示问题final JTable table new JTable(sorter)table.setRowHeight(30)tab

JTAble与JScrollpane滚动条显示问题
final JTable table = new JTable(sorter);

table.setRowHeight(30);
 
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
scrollPane = new JScrollPane(table);
当数据的列比较多时,出现在横向滚动条,滚动滚动条时表头不刷新.也就是数据内容和表头不一致了,表头画的重叠了.
大侠们帮帮我


[解决办法]
是不是要把tableHeader设置一下,
你看看swingHacker 中有没有介绍
[解决办法]

探讨
代码很多呀.就是当table很大时,jscrollpane就会出现横向滚动条.移动横向滚动条,表头就有问题呀 

[解决办法]
这可能需要你编写一个方法来根据内容的列宽动态调整表头列宽了。
[解决办法]
探讨
没有越界了.只是表格大了,JScrollPane就自动出现横向滚动条了

[解决办法]
因为你设置的宽度不对
应该这样:
table.getTableHeader().setPreferredSize(new Dimension(table.getTableHeader().getPreferredSize().width,40));
就可以了
参考代码:
Java code
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);    }} 

热点排行