java - 我不希望 JTable 用省略号截断文本

标签 java swing jtable truncate preferredsize

这是我的问题:我正在使用 JTable 并制作了自己的 AbstractTableModel。到目前为止,一切都很好。当文本太长时,单元格渲染器将截断文本并显示省略号 ...,但我的一些数据库注册表也有省略号。例如:我一直在学习的程序语言:

first registry "Visual Basic (2003-2007)"
second registry "C++ (2006-2010)"
third registry "Java (2010-...)"

意味着我在 2007 年停止了学习 VB。在 2010 年停止了 C++。我仍在学习 Java。但是当列不是那么大时,它会被截断,有时会显示这样:

"Visual Basic (2003-..."
"C++ (2006-2010)"
"Java (2010-...)"

用户可能会感到困惑,认为“Visual Basic (2003-...”) 的意思是“Visual Basic (2003 - ...)”,而实际上它应该表示“Visual Basic (2003-2007)”

抱歉,如果我说得不够清楚,我希望大家理解,我只是想让 JTable 截断文本而不使用省略号。

最佳答案

这个answer显示椭圆是如何出现的;与其试图击败它们,更好的方法是将您的 JTable 添加到允许表格随着封闭的 Window 大小的调整而调整的布局。在此example ,表格填充 BorderLayout.Center,这是 JFrame 的默认值。为了获得更具吸引力的初始外观,

附录:虽然从可用性角度我不推荐它,但您可以在DefaultTableCellRenderer的自定义子类中省略省略号。使用自定义LabelUI并覆盖layoutCL(),如图herehere .

关于java - 我不希望 JTable 用省略号截断文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17473041/

相关文章:

java - 选中时显示 JTable 行的信息

java - 将单元格值添加到 JTable 时出现 ArrayIndexOutOfBoundException

java - 如何在具有空布局的 JPanel 中添加 JTable?

java - onPageScrollStateChanged(int状态): what does state represent

java - 初始化 minValue 和 maxValue 并且显示屏不会显示。另外,如果没有输入号码,则显示

java - 如何消除 Eclipse Juno 使用 lambda 表达式时出现的错误?

java - JTable 未显示列标题

java - Spring jpa存储库查找全部

java - 在 Java 中使用 MouseDragged 绘图时出现问题

java - 从 JButton 更改 JLabel 的图像