两个JTable可以一起滚动的Listener

王朝网络·java/jsp·作者佚名  2006-01-09
宽屏版  字体: |||超大  

説明:kinmuSrl,orderSrlはScrollPaneです。

以下はソースです。

/**二つテープル一緒にスクロールのためのリスナー*/

ChangeListener c1 = new ChangeListener(){

boolean adjflg = false;

public void stateChanged(ChangeEvent e){

JViewport src = null;

JViewport tgt = null;

if(e.getSource()==kinmuSrl.getViewport()){

src = kinmuSrl.getViewport();

tgt = orderSrl.getViewport();

}else if(e.getSource()==orderSrl.getViewport()){

src = orderSrl.getViewport();

tgt = kinmuSrl.getViewport();

}

if(adjflg || tgt==null || src==null) return;

adjflg = true;

Dimension dim1 = src.getViewSize();

Dimension siz1 = src.getSize();

Point pnt1 = src.getViewPosition();

Dimension dim2 = tgt.getViewSize();

Dimension siz2 = tgt.getSize();

Point pnt2 = tgt.getViewPosition();

double d;

d = pnt1.getY()/(dim1.getHeight()-siz1.getHeight())*(dim2.getHeight()-siz2.getHeight());

pnt1.y = (int)d;

d = pnt1.getX()/(dim1.getWidth()-siz1.getWidth())*(dim2.getWidth()-siz2.getWidth());

pnt1.x = (int)d;

tgt.setViewPosition(pnt1);

adjflg = false;

}

};

使い方:

ScrollPaneにリスナーを付けます。

orderSrl.getViewport().addChangeListener(c1);

kinmuSrl.getViewport().addChangeListener(c1);

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有