java - 当我将策略设置为 HORIZONTAL_SCROLLBAR_​​AS_NEEDED 时,为什么看不到水平滚动条

标签 java swing jtable jscrollpane jscrollbar

我已将 jTable 添加到 jScrollPane 中,如下所示:

    public Scenario_One() {
      initComponents();
      jScrollPane1.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
      jScrollPane1.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
    }

    private void initComponents() {
       .
       .
       jScrollPane1.setViewportView(jTable1);
       .
       .
    }

要在单行中显示的文本太大,因此我不得不使用水平滚动条。但即使将策略设置为按需后,我也看不到水平滚动条。这可能是什么原因?

最佳答案

正如 @MadProgrammer 已经评论的那样,控制 JScrollPane 内的表大小调整行为的属性是 autoResizeMode。基本上,有两个选择:

  • autoResizeOff:列始终以其 prefWidth 显示,根据需要显示/隐藏水平滚动条。如果它们的总宽度小于视口(viewport)宽度,则尾随空间保持空闲(显示视口(viewport))
  • 所有其他:列的大小调整为表格的总宽度适合滚动 Pane ,水平滚动条永远不会显示

核心 JTable 不支持表“适合”视口(viewport)直到列变得太宽而无法完全显示然后自动允许滚动的(直观)期望。 JXTable(包含在 SwingX project 中)提供了一个额外的调整选项来执行此操作。

关于java - 当我将策略设置为 HORIZONTAL_SCROLLBAR_​​AS_NEEDED 时,为什么看不到水平滚动条,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12890265/

相关文章:

java - Selenium 4 : Getting java. lang.NoSuchMethodError : org. openqa.selenium.WebElement.getDomAttribute(Ljava/lang/String;)Ljava/lang/String;

java - 为什么JMH说返回1比返回0快

java - 创建 ImageIcon 时 getClass().getResource(...) 做了什么?

java - 如果 JTable 已排序,TableModel RemoveRow() 会删除错误的行

java - JTable异常删除行

java - 在使用普通邮件通过 Hotmail 发送电子邮件时出现 org.apache.commons.mail.EmailException

java - Apache gora,在reducer中设置新表名的位置

java - 无法调整 BoxLayout 中 JLabels 的大小

java - JPanel 以额外宽度绘制

java - 使用 MouseListener 事件在 JTable 中出现 NullPointerException