Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何制作JTable';s宽度>;=随附的滚动窗格';宽度是多少?_Java_Swing_Jtable_Jscrollpane - Fatal编程技术网

Java 如何制作JTable';s宽度>;=随附的滚动窗格';宽度是多少?

Java 如何制作JTable';s宽度>;=随附的滚动窗格';宽度是多少?,java,swing,jtable,jscrollpane,Java,Swing,Jtable,Jscrollpane,我想使表格的宽度至少适合封闭的滚动窗格的宽度,如果它越来越大,则使用水平滚动条 JTable的自动调整大小模式都不适合我的需要:auto_resize_OFF允许调整表的大小大于滚动窗格的宽度,但不能限制表的最小宽度;其他模式不允许表格宽度大于滚动窗格的宽度 我尝试将最小尺寸设置为如下,但无效: JTable table = new JTable(myModel); JScrollPane scrollPane = new JScrollPane(table); table.setAutoRes

我想使表格的宽度至少适合封闭的滚动窗格的宽度,如果它越来越大,则使用水平滚动条

JTable
的自动调整大小模式都不适合我的需要:
auto_resize_OFF
允许调整表的大小大于滚动窗格的宽度,但不能限制表的最小宽度;其他模式不允许表格宽度大于滚动窗格的宽度

我尝试将最小尺寸设置为如下,但无效:

JTable table = new JTable(myModel);
JScrollPane scrollPane = new JScrollPane(table);
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);

// After the table is displayed.
table.setMinimalSize(scrollPane.getSize());
有什么办法可以做到这一点吗

我尝试将最小尺寸设置为如下,但无效:

JTable table = new JTable(myModel);
JScrollPane scrollPane = new JScrollPane(table);
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);

// After the table is displayed.
table.setMinimalSize(scrollPane.getSize());
table.setMinimalSize(scrollPane.getSize())

  • JTable
    JScrollPane
    无法返回合理的
    Min
    Max
    PreferredSize

  • 您可以使用
    table.setPreferredScrollableViewportSize(table.getPreferredSize())将(在应用程序启动时)JScrollPanes
    维度调整为JTableJFrame.pack(),运行时必须通过
    revalidate()
    repaint()
    JScrollPane
    嵌套的容器进行验证,否则必须计算维度而不是JTable.getP

  • 不要重新发明轮子,使用@camickr,哪一个从你的描述中不清楚,取决于你的

JTable的宽度>=封闭滚动窗格的宽度

  • 这个想法无法逆转
我尝试将最小尺寸设置为如下,但无效:

JTable table = new JTable(myModel);
JScrollPane scrollPane = new JScrollPane(table);
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);

// After the table is displayed.
table.setMinimalSize(scrollPane.getSize());
table.setMinimalSize(scrollPane.getSize())

  • JTable
    JScrollPane
    无法返回合理的
    Min
    Max
    PreferredSize

  • 您可以使用
    table.setPreferredScrollableViewportSize(table.getPreferredSize())将(在应用程序启动时)JScrollPanes
    维度调整为JTableJFrame.pack(),运行时必须通过
    revalidate()
    repaint()
    JScrollPane
    嵌套的容器进行验证,否则必须计算维度而不是JTable.getP

  • 不要重新发明轮子,使用@camickr,哪一个从你的描述中不清楚,取决于你的

JTable的宽度>=封闭滚动窗格的宽度

  • 这个想法无法逆转

看看Try
setPreferredSize()
除了
setMinimalSize()
大多数布局管理器尊重首选大小而不是最小大小。@a_horse_没有名字:如果我使用
setPreferredSize()
,表格宽度将固定为首选宽度,而且再也不能调整大小了。@MadProgrammer:看来这是另一个问题了…@ZhaoYi真的吗?怎么用?当表格的总宽度小于视口时,它将使列填充滚动窗格的水平宽度,但允许它过度扩展(当它太大时显示水平滚动条),除了查看
setMinimalSize()之外,还可以查看Try
setPreferredSize()
大多数布局管理器尊重首选的大小,而不是最小的大小。@MadProgrammer:没有名字的马:如果我使用
setPreferredSize()
,表格宽度将固定到首选的宽度,并且再也不能调整大小。@MadProgrammer:似乎这是一个不同的问题…@ZhaoYi真的吗?怎么用?当表格的总宽度小于视口时,它将使列填充滚动窗格的水平宽度,但允许其过度扩展(当其太大时显示水平滚动条)