当前位置: 首页 > 面试题库 >

如何使JTable既可自动调整大小又可水平滚动?

元嘉木
2023-03-14
问题内容

我正在将JTable放入JScrollPane

但是,当我设置JTable Auto Resizeable时,它将没有水平滚动条。

如果我设置了AUTO_RESIZE_OFF,那么当列宽不够大时,Jtable将不会填充其容器的宽度。

所以我该怎么做:

  1. 当表格不够宽时,展开以填充其容器宽度
  2. 当表格足够宽时,使其可滚动。

谢谢


问题答案:

您需要自定义Scrollable界面的行为。

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.table.*;

public class TableHorizontal extends JFrame
{
    public TableHorizontal()
    {
        final JTable table = new JTable(10, 5)
        {
            public boolean getScrollableTracksViewportWidth()
            {
                return getPreferredSize().width < getParent().getWidth();
            }
        };
        table.setAutoResizeMode( JTable.AUTO_RESIZE_OFF );
        final JScrollPane scrollPane = new JScrollPane( table );
        getContentPane().add( scrollPane );
    }

    public static void main(String[] args)
    {
        TableHorizontal frame = new TableHorizontal();
        frame.setDefaultCloseOperation( EXIT_ON_CLOSE );
        frame.pack();
        frame.setSize(400, 300);
        frame.setVisible(true);
    }
}

上面的代码基本上按其首选大小或视口大小(以较大者为准)调整组件的大小。



 类似资料:
  • 问题内容: 我在使用滚动条创建JTable时遇到问题。我想要一个具有2列且没有可见滚动条的JTable。 如果我放大其中一列,则滚动条应该变得可见,并且列的大小也将重新调整。 我遵循此答案如何使JTable既可自动调整大小又可水平滚动?并且工作正常,基本上可以归结为: 但是,使用此解决方案,我无法缩小第一列。仅当我放大第二列并且滚动条变得可见时,我才可以缩小第一列。 必需的行为是2列会自动调整大小

  • 问题内容: 有什么方法可以在必要时启用水平滚动条吗? 情况是这样的:我有一个单元格,其中存储了很长的数据。因此,我需要水平滚动条。 有人对此有想法吗? 问题答案: 首先,在里面添加a 并为滚动条的存在设置策略: 然后,通过设置模式,指示JTable不能自动调整列的大小:

  • 问题内容: 我有正在调整大小的内容,并且我希望有一个不会增加/缩小并且不属于可滚动内容的固定标题。如果没有足够的空间,则下面的内容可滚动。 内容外部包装器()具有,内部包装器具有。这里的思想过程是将div内的所有剩余空间填满,然后内部包装将占据的整个高度,如果溢出,则应滚动。 发生的事情是确实会填满该区域,但似乎它的内容决定了它的最小高度。 我怎样才能使它永远不会超出区域高度? 注意:我看了这个类

  • 好吧,这里你是下一篇关于固定页眉和页脚的无聊滚动表的文章。这个主题来自超文本标记语言的刚性结构。源问题是显示非常巨大的表格溢出屏幕宽度作为高度。我的愿望也是将标题固定在表格的顶部,因此将其副本固定在表格的底部。 在大量搜索和测试保证代码后,我发现了下一个深层嵌套问题:-页眉和页脚没有保持表体的单元格间距,而tbody是单独滚动的-tbody行覆盖了页眉-tbody的垂直滚动很难与整个表(包括页眉和

  • 问题内容: 我有一个,当行太多时,会出现滚动条,但是当行太长时,该行会分成两行,而不是出现水平滚动条,如何使水平条出现而不是分成两行,我的添加如下: 问题答案: 正如我们自己的Rob Camick 在这里介绍的那样,您可以尝试使用类似… 这将停止行/自动换行

  • jQueryUI提供resizable()方法来调整任何DOM元素的大小。 这种方法简化了元素的大小调整,否则需要花费大量时间和HTML编码。 resizable()方法在项目的右下角显示一个图标以调整大小。 语法 (Syntax) resizable()方法可以使用两种形式 - $(selector,context).resizable(options)方法 $(selector, contex