两个JTable可以一起滚动的Listener

説明: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);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值