随笔 - 6, 文章 - 3, 评论 - 3, 引用 - 0
数据加载中……

判断table 中的column,row是否不可见

public boolean isColumnVisible(int columnIndex) {

  int x = 0;
  int len = table.getColumnCount();
  int lastwidth = 0;

  for (int i = 0; i < len; i++) {
   if (i <= columnIndex) {
    TableColumn tcolumn = table.getColumn(i);
    lastwidth = tcolumn.getWidth();
    x = x + tcolumn.getWidth();
   }
  }

  Rectangle rectangle = table.getClientArea();
  ScrollBar hb = table.getHorizontalBar();
  ScrollBar vb = table.getVerticalBar();

  if (x <= (hb.getSelection() + rectangle.width) && (x >= hb.getSelection()) && ((x - lastwidth) >= hb.getSelection())) {
   return true;
  }
  return false;
 }


public boolean isRowVisible(int row) {
  Rectangle rectangle = table.getClientArea();

  TableItem startItem = table.getItem(new Point(rectangle.x, rectangle.y + table.getHeaderHeight()));
  TableItem endItem = table.getItem(new Point(rectangle.x, rectangle.height - 5));

  if (endItem == null) {
   endItem = table.getItem(table.getItemCount() - 1);
  }

  if (startItem == null || endItem == null)
   return false;
  int startrow = table.indexOf(startItem);
  int endrow = table.indexOf(endItem);

  if (startrow <= row && endrow >= row) {
   return true;
  }
  return false;
 }

posted on 2006-05-30 10:47 马甲丁 阅读(424) 评论(0)  编辑  收藏 所属分类: Eclipse


只有注册用户登录后才能发表评论。


网站导航: