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

如何将JTable列的大小调整为字符串长度?

李捷
2023-03-14
问题内容

我有一个JTable,它将最后一列的数据字段更改为不同的字符串值。我想将列的大小调整为字符串长度。字符串从长到宽的公式是什么?

我将要使用,JTable.getColumnModel().getColumn().setPreferredWidth()所以我想知道如何将字符串长度转换为宽度值。


问题答案:

您对字符串的长度(也不是对特定字体/度量的映射)并不真正感兴趣。您对renderingComponent的preferredSize感兴趣,renderingComponent渲染单元格内容。为此,请遍历所有行并查询大小,例如

 int width = 0;
 for (row = 0; row < table.getRowCount(); row++) {
     TableCellRenderer renderer = table.getCellRenderer(row, myColumn);
     Component comp = table.prepareRenderer(renderer, row, myColumn);
     width = Math.max (comp.getPreferredSize().width, width);
 }

或使用JXTable(在SwingX项目中):它有一个方法pack()为您工作:-)

编辑:与在渲染器上手动调用getXXRendererComponent相比,偏爱表的prepareRenderer的原因是,该表可能确实装饰了renderComponent的视觉属性。如果这些装饰影响了组件的prefSize,则关闭手动配置。



 类似资料:
  • 我试图从标准输入中读取一些非常大的数字,并将它们相加。 然而,要添加到BigInteger,我需要使用

  • 问题内容: 我有一个JTable,它使用a 来检测何时调整了列的大小,并且我想在该方法中执行一些代码。 如何确定该列是由用户调整大小还是由于其他代码导致? 我以为我必须从头开始,但我不知道从那里去哪里。 谢谢。 问题答案: 我可以给你一种可能的方法。我试图解决相同的问题,因为我想将有关列宽的信息序列化到磁盘上,以便下次在应用程序中打开表时,可以适当地恢复列宽。开始: 第1步-覆盖您的JTable并

  • 问题内容: 我有一个使用long作为ID的定制类。但是,当我使用ajax调用操作时,我的ID被截断并且丢失了最后2个数字,因为javascript处理大数字时会失去精度。我的解决方案是给我的JavaScript字符串,但是ID必须在服务器端保留很长时间。 有没有一种方法可以将属性序列化为字符串?我在寻找某种属性。 控制者 模型 JSON结果 问题答案: 您可能可以创建一个自定义并将其应用于您的媒体

  • 你好,谢谢你花时间处理我的问题。首先让我向你介绍我的虚拟/培训项目。下面列出的类应该代表MVC模型(模型、视图、控制器)之后的程序。运行主类时,会打开FileChooser,从中可以选择. csv-File,其中包含保存为String[][]的信息。这个String[][]然后在视图类中可视化为JTable。这个JTable是带有BorderLayout的JFrame中的JPanel的一部分。中心

  • 问题内容: 我有一个清单说: 如何在不触及字符串的情况下转换预期的数字? 感谢您的帮助。 问题答案:

  • 问题内容: 有没有办法在不知道字符串长度的情况下,将一个字符长的字符串切成4个字符串,每个字符长? 例如: 问题答案: