这是我的问题:我正在使用JTable
并制作了自己的AbstractTableModel
。到现在为止还挺好。当文本太长时,单元格渲染器将截断文本并显示省略号…
,但我的一些数据库注册表也有省略号。例如:我一直在学习的程序语言:
第一个注册表“Visual Basic(2003-2007)”
第二个注册表“C ++(2006-2010)”
第三个注册表“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
在没有省略号的情况下截断文本。
答案 0 :(得分:4)
这answer显示了省略号的出现方式;而不是试图击败他们,更好的方法是将您的JTable
添加到一个布局,允许在调整封闭的Window
时调整表格。在此example中,该表填充BorderLayout.Center
,JFrame
的默认值。为了更具吸引力的初始外观,
您可以将getPreferredScrollableViewportSize()
覆盖为shown。
您可以根据需要使用Changing Column Widths。
附录:虽然我不建议从可用性角度出发,但您可以省略DefaultTableCellRenderer
的自定义子类中的省略号,该子类使用自定义LabelUI
并覆盖layoutCL()
,如显示here和here。