当前位置: 首页 > 知识库问答 >
问题:

显示没有垂直和水平滚动条但显示所有行和列的JTable

齐航
2023-03-14

每个JTable都包含在一个JScrollPane中。(IDE已经插入)现在,JTable的高度是固定的。因此,如果元素的数量较少,则在JScrollPane中显示空空间。如果元素的数量更多,用户需要滚动包含JTable的JScrollPane。JTable的水平滚动也是如此。如果窗口最大化,JTable的宽度也会增加,以占据整个可用区域。是否可以修改GUI,使JScrollPane的高度变得足够大,以便在不滚动的情况下显示JTable的所有行?并且JTable的宽度应该尽可能大,以显示没有水平滚动的内容。如果JTable中的列数太多,或者JPanel(JTabbedPane的JScrollPane)中的元素数(JTable和JLabel)太多,那么将通过JScrollPane(JTabbedPane的)的滚动条来滚动项

共有1个答案

鞠嘉誉
2023-03-14

使用JTable的最简单方法是将该表添加到JScrollPane中,以便同时显示表头。您需要做的是将scrollpanes的大小设置为表的大小,这样您就可以看到所有的数据,而不是滚动条。代码为:

JTable table = new JTable( ... );
table.setPreferredScrollableViewportSize(table.getPreferredSize());
JScrollPane scrollPane = new JScrollPane( table );
panel.add( scrollPane );

现在,如果面板的布局管理器尊重scrollpane的首选大小,您将看到该表的所有数据。

当然,如果动态更改表中的数据,则首选大小将更改,因此更好的解决方案是重写表的getPreferredScrollabLeviewPortSize(...)以返回适当的值。

 类似资料:
  • 我一直在努力解决HTML/CSS粘滞头+滚动条的问题。我们正在创建一个程序,一旦containersize达到某个点(取决于用户的分辨率),就需要滚动条显示出来。 我在表中的第二列上强制设置一个min-width,因此表在某个点停止递减,并强制容器保持在某个宽度。容器上的溢出显示水平滚动条。一切正常。一旦我为垂直滚动添加了第二个滚动条,事情就会变得一团糟。有人有解决这个问题的办法吗?我想在.tab

  • 我正在使用GridView创建一个组件来创建像Excel这样的表。在这里,我最初创建了一个2x2网格,稍后当用户单击按钮时,会添加额外的行和列。 这是我添加新专栏的做法:- 这可以正常工作并添加额外的列。问题是当添加列时,以前的列会收缩以适应新列,从而使每次添加新列时列看起来更小。我想一次只在屏幕上显示2列,然后让用户水平向前滚动以查看更多列。现在网格只能垂直滚动。同样,我希望在添加新行时发生这种

  • 问题内容: 所以目前我有: 但是,我认为对于某些用户来说,那里有更多的内容是显而易见的。他们可以在不知道我的div实际包含更多内容的情况下向下滚动页面。我使用510px的高度,因此它会截断一些文本,因此在某些页面上看起来确实有更多内容,但这不适用于所有页面。 我使用的是Mac,在Chrome和Safari中,垂直滚动条仅在鼠标悬停在Div上并且您正在滚动时才会显示。有没有办法一直显示它? 问题答案

  • 出于好奇,考虑到下面的示例,为什么在#container div上有边距会导致浏览器中出现垂直滚动条?容器的高度比设置为100%的车身高度小得多。 我已经将除了#容器之外的所有元素的填充和边距设置为0。注意,我故意省略了#container div上的绝对定位。在这种情况下,浏览器是如何计算身体的高度的,边距是如何影响它的? JSFiddle上的示例

  • 问题内容: 我有一个固定宽度但高度可变的HTML文本区域。我想设置并能够显示一个垂直滚动条,但不能显示水平滚动条。由于其他与我的情况有关的其他原因,我无法使用。 我知道无法使用CSS2仅显示垂直滚动条,而不能显示水平滚动条。我可以使用JavaScript隐藏水平滚动条吗? 问题答案: 您可以像这样使用CSS:

  • 问题内容: 我想对字段进行分组,但想显示称为的列的所有行: 这是mysql查询: 问题答案: 使用 SQLFiddle演示 其他链接 MySQL GROUP_CONCAT