WEB开发网
开发学院软件开发Java 固定JTable中的前几列 阅读

固定JTable中的前几列

 2009-09-23 00:00:00 来源:WEB开发网   
核心提示: 接下来就是鼠标等一些事件来监听画出固定列的信息了,当捕捉到需要将固定的列固定住,固定JTable中的前几列(3),就调用如下方法:/***//***固定列*利用JLayeredPane使其显示在JTable之上**/publicvoidfreeze(){JLayeredPanepane=tabl

接下来就是鼠标等一些事件来监听画出固定列的信息了。当捕捉到需要将固定的列固定住,就调用如下方法:

/** *//**
  *固定列
  *利用JLayeredPane使其显示在JTable之上
  **/
  public void freeze() {
   JLayeredPane pane = table.getRootPane().getLayeredPane();
   if (added) {
    pane.remove(fixedColumns);
   } 
   pane.add(fixedColumns, JLayeredPane.POPUP_LAYER);
   setBoundsOnFrozenColumns();
   added = true;
   fixedColumns.setVisible(true);
  }

还有一些繁杂的计算ixedColumns的位置大小大家可以下载代码自己看了,大致原理就是如此简单,就是利用JLayeredPane层的概念,用起来也很方便,只需要在原有的代码传入JTable,以及装在这个JTable的JScrollPane,如

 JTable table = new JTable(data, columnNames);
  JScrollPane scrollPane = new JScrollPane(table);
  FixTableManager tableHeader = new FixTableManager(table,scrollPane);
  //固定前三列
  tableHeader.setFixCol(2);

总之这样能忽悠成看起来像是固定了,那它也有感觉不带劲的地方,大家如有兴趣,可以在下面的链接中下载代码,运行其看看效果  ,效果是Scrollbar不会的最小值停留的位置不是在固定列的最后位置,随之scrollbar的拖动,我们可以看到有的列会被固定的列挡住,正如前面所说,这个所谓的固定是个假象。还有一些缺点如有的皮肤可能算出来的结果会和原有的Table看起来不一致等。

本文示例源代码或素材下载

上一页  1 2 3 

Tags:固定 JTable

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接