有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java为什么水平滚动条永远不会出现在JTable上?

既然一幅画抵得上千言万语:

JTable when Horizontal ScrollBar is not needed JTable when Horizontal ScrollBar is needed

我在JScrollPane中有JTable,目前该表有10列。每列都有一个最小宽度(由setMinWidth(…)给出)

第一张图片:当JFrame被拉伸超过所有列的所有最小宽度之和时,列被拉伸以填充窗口:这是所需的效果(不希望在帧的最右侧出现空白)

第二张图片:但是,当JFrame设置为小于此组合最小尺寸时,水平条不会正确显示,并且无法查看最右侧的列。目前我有JScrollPane。水平滚动条总是作为水平条选项提示为什么两张图片都使用水平条容器(合适的名称?)有,但真正的酒吧本身从来没有出现过。如果我有JScrollPane。水平滚动条关闭,水平条容器从不显示

垂直工程很好

我尝试过很多方法,包括禁用自动调整大小,以及在JScrollPane宽度超过列的最小宽度和时尝试自己设置列宽。我必须自己手动操作,这似乎是不对的。如果有必要,我可以提供我的代码,但我认为没有必要,因为它只是一个承载JTable的JScrollPane


共 (1) 个答案

  1. # 1 楼答案

    解决方案是覆盖getScrollableTracksViewportWidth()方法:

    @Override
    public boolean getScrollableTracksViewportWidth() {
      return (getPreferredSize().width < getParent().getWidth());
    }