前面代码略, table为扩展的JTable;
table里定义了两个公用变量(这里是我另有用途,才加进去的,如果没有必要,你可以去掉)
public int scrollHorizontal ;
public int scrollWidth;
在加入scroll之前的代码
scroll = new JScrollPane();
final JScrollBar jscVertical = scroll.getVerticalScrollBar();
final JScrollBar jscHorizontal = scroll.getHorizontalScrollBar();
// jscVertical.setBlockIncrement(15); //这个可以设置上下滚动的步长值,默认10
// jscHorizontal.setBlockIncrement(15); //这个可以设置左右滚动的步长值,默认10
jscHorizontal.addAdjustmentListener(new AdjustmentListener(){
public void adjustmentValueChanged(AdjustmentEvent arg0) {
int intHorWidth = jscHorizontal.getWidth();
int intVerHeight = jscVertical.getHeight();
int intHor = jscHorizontal.getValue();
int intVer = jscVertical.getValue();
table.scrollHorizontal = intHor;
table.scrollWidth = intHorWidth;
scroll.repaint(intHor,intVer,intHorWidth,intVerHeight);
}
});
jscVertical.addAdjustmentListener(new AdjustmentListener(){
public void adjustmentValueChanged(AdjustmentEvent arg0) {
int intHorWidth = jscHorizontal.getWidth();
int intVerHeight = jscVertical.getHeight();
int intHor = jscHorizontal.getValue();
int intVer = jscVertical.getValue();
table.scrollVertical = intVer;
table.scrollHeight = intVerHeight;
scroll.repaint(intHor,intVer,intHorWidth,intVerHeight);
}
});
scroll.setViewportView(table);