gpt4 book ai didi

java - 当我在 jscrollpane 上添加 jtable 时,水平滚动条不起作用

转载 作者:行者123 更新时间:2023-11-30 03:09:10 28 4
gpt4 key购买 nike

我在 JScrollPane 上有一个 JTable。我希望该表占据整个卷轴。所以我添加了这个:table.setAutoResizeMode(JTable.AUTO_RESIZE_All_Columns); 当只有几列时它效果很好。但是当有很多列时,它看起来像 that:

正如您所看到的,列太窄。我尝试为所有列添加此代码: table.getColumnModel().getColumn(1).setMinWidth(75); 它有效。我将此代码添加到 JScrollPane: setHorizo​​ntalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_​​ALWAYS); 但是水平滚动条 doesn't work:

你可以看到它,但它不起作用。我知道我可以用这段代码解决我所有的问题:

table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF)

但在这种情况下,我的表格没有占据整个滚动条。因此,当只有几列时,我希望列扩展滚动的整个宽度,并且当有很多列时,我希望列不会缩小到小于某个值。我想要一个水平滚动条。可以这样做吗?

抱歉,这是一个愚蠢的问题。我可以用这段代码做我想做的一切:

if (getColumnModel().getColumnCount() > 13)
setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
else
setAutoResizeMode(JTable.AUTO_RESIZE_ALL_COLUMNS);

但是如果有人知道更优雅的解决方案,请展示出来。这对我来说真的很有帮助。

最佳答案

重复。
您可以find here 2 个优雅的解决方案。
其中之一是:

jTable.getParent().addComponentListener(new ComponentAdapter() {
@Override
public void componentResized(final ComponentEvent e) {
if (jTable.getPrefer1sredSize().width < jTable.getParent().getWidth()) {
jTable.setAutoResizeMode(JTable.AUTO_RESIZE_ALL_COLUMNS);
} else {
jTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
}
}
});

关于java - 当我在 jscrollpane 上添加 jtable 时,水平滚动条不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33994507/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com