我是靠谱客的博主 冷酷音响,最近开发中收集的这篇文章主要介绍如何保持JTable和JList的item始终可见,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

查看JDK的API文档,我们知道JTable有两个函数,一个是setColumnSelectionInterval(int beginIndex, int endIndex),可以选定指定的列;一个是setRowSelectionInterval(int beginIndex, int endIndex),可以选定指定的行。当JTable包含的列或者行比较多的时候, 调用这两个函数虽然没有问题,但可能会出现这样一种情况:指定的行或列已经被选中了,而该行或列正好不在可见区域内,需要拖动滚动条才可以看到选中的行或列。这样就给用户一个不太好的体验了。
    最直接的想法自然是看看JTable是否提供了API可供调用。对于JTree,是有这样的函数的:scrollPathToVisible(TreePath path)和scrollRowToVisible(int row)。调用其中一个函数就可以达到目标。而JTable则没有提供这样的函数。JComponent提供了函数scrollRectToVisible(Rectangle rect)。通过这一函数,还是可以实现JTable的滚动的。函数scrollRectToVisible将调用转发给它的父容器进行处理,父容器选择继续往上转发或者处理该请求。
    函数scrollRectToVisible只接收一个参数Rectangle,表明希望哪个区域是可见的。对于JTable,通过以下方式得到需要的参数:
        int x = jTable1.getBounds().x;
        int y = jTable1.getRowHeight() * rowIndex;
        int width = jTable1.getBounds().width;
        int height = jTable1.getRowHeight();    
        jTable1.scrollRectToVisible(new Rectangle(x, y, width, height));

    对于JList,可以这样实现:
        jList1.scrollRectToVisible(jList1.getCellBounds(rowIndex, rowIndex));

最后

以上就是冷酷音响为你收集整理的如何保持JTable和JList的item始终可见的全部内容,希望文章能够帮你解决如何保持JTable和JList的item始终可见所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(43)

评论列表共有 0 条评论

立即
投稿
返回
顶部