【问题标题】:Can you set the cells of JTable to spill over?你能设置 JTable 的单元格溢出吗?
【发布时间】:2013-08-16 23:50:32
【问题描述】:

我正在尝试在我的 JTable 上模仿一些 Excel 电子表格功能,特别是我一直称之为单元格溢出或单元格溢出的功能。当您使用比单元格设置的宽度更宽的文本填充单元格时,会发生这种情况。如果其右侧的单元格中没有文本,则单词只会继续进入下一个单元格并超出该单元格。

我觉得这可以通过 TableCellRenderer 以某种方式完成,但我不知道如何。 任何帮助将不胜感激

【问题讨论】:

  • 不,TableCellRenderer 不能跨越单元格。您还考虑过哪些其他选择?
  • @Tim Herold 提出了一个可靠的链接,但这并不是我想要的。我很可能只是将数据粘贴在最后一列,应用包装,然后让用户接受它

标签: java swing jtable tablecellrenderer


【解决方案1】:

我不知道,因为您没有提供很多细节,但一个简单的用例是:

  1. 输入文本时检查字符数
  2. 检查单元格的宽度并查看文本是否适合
  3. 如果文本不合适,请检查该单元格旁边的单元格是否有文本
  4. 如果没有文本,请调整单元格的大小以适合文本并缩小其旁边的单元格。

或者类似的东西。 但我不知道 JTable 是否允许调整单个单元格的大小,您应该检查 JTable API。 http://docs.oracle.com/javase/6/docs/api/javax/swing/JTable.html

我不知道有没有更好的方法,所以你应该查阅 API 文档和示例。 例如:http://users.csc.calpoly.edu/~jdalbey/305/Lectures/TableCellRendererExamples.html

希望对你有帮助。

【讨论】:

  • 感谢您的帮助。然而,对于这个项目,将数据粘贴在最后一列会更容易,应用换行,让用户处理丑陋的格式
  • 不客气。你是对的,这只是一些你可以不用的花哨功能。
【解决方案2】:

不,TableCellRenderer 不能跨越单元格。作为替代方案,请考虑以下:

  • TablePopupEditor,一个自定义的TableCellEditor,可以适配为渲染器。

  • 可以将ListSelectionListener(显示为here)添加到相邻组件以显示所选行的详细信息,可能使用JScrollPane

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-17
    • 2014-09-24
    • 1970-01-01
    • 2015-02-16
    • 1970-01-01
    相关资源
    最近更新 更多