java - 如何使用 JTable 设置 JScrollPane 以自动调整内容

标签 java swing

我想在我的程序中实现一种机制,当列太长而无法在 JScrollPane 的视口(viewport)中完全看到时,该机制将自动重新缩放 JScrollPane:

例如我的 JTable 看起来像:

   ___________ JScrollPanel _____________
  |                                      |
  |     __________ JTable _______________|_ ___    
  |    |________|______|______|_____|____|_|___|    
  |    |        |      |      |     |    | |   |
  |    |________|______|______|_____|____|_|___|
  |______________________________________|

现在如何设置自动将 JscrollPanel 调整到更宽的 JTable

   ___________ JScrollPanel ______________________
  |                                      <------>|        
  |     __________ JTable _________________ ___  | 
  |    |________|______|______|_____|____|_|___| |  
  |    |        |      |      |     |    | |   | |
  |    |________|______|______|_____|____|_|___| |
  |                                     <------->|
  |______________________________________________|

有时我从 JTableModel 获取数据,但我不知道数据在 JTable header 中的长度。

最佳答案

JTable实现了 Scrollable,因此您可以利用 getPreferredScrollableViewportSize() 返回的结果。默认实现可能并不理想,但您可以覆盖该方法以获得更好的适应性。这example返回表的 getRowHeight() 的倍数。对于列宽,您可能想尝试 setAutoResizeMode() 可用的 AUTO_RESIZE_* 设置,已讨论 here .

关于java - 如何使用 JTable 设置 JScrollPane 以自动调整内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24716795/

相关文章:

java.io.FileNotFoundException : class path resource 错误

java - 使用 Java 图形沿弧形路径移动形状

java - 如何优化 REST API 调用

java - 如何从 <form target ="IFrame"> 得到响应

java - 给定字符串中字符的第一个索引和最后一个索引之间的差异

java - 无法让 JPanel 在 Swing 中正确调整大小

java - 在 JApplet 中添加图像

java - Kafka主题删除

java - 在运行时更新组件位置

java - JTable + 排序特定字段