Java 列太小的TableCellRenderer没有点后缀

Java 列太小的TableCellRenderer没有点后缀,java,swing,jtable,tablecellrenderer,Java,Swing,Jtable,Tablecellrenderer,我试图学习JTables TableCellRenderer,但有些东西我不明白。也许你们中的一个能帮我 请看一下我在网上找到的这个例子: 这是一个简单的可编译单元,用于演示TableCellRenderer的使用 但是现在,使用定义的渲染器,当我收缩列时,标题仍然是主干,并得到一个结尾“…”。 这些值只是“隐藏”的,因为没有足够的空间。“…”不见了。 请看图片 是否有可能获取单元格值的“…”?正如其他人评论的那样,单元格渲染器返回一个JTextField。 在swing中,这个片段字符串实

我试图学习JTables TableCellRenderer,但有些东西我不明白。也许你们中的一个能帮我

请看一下我在网上找到的这个例子:

这是一个简单的可编译单元,用于演示TableCellRenderer的使用

但是现在,使用定义的渲染器,当我收缩列时,标题仍然是主干,并得到一个结尾“…”。 这些值只是“隐藏”的,因为没有足够的空间。“…”不见了。 请看图片


是否有可能获取单元格值的“…”?

正如其他人评论的那样,单元格渲染器返回一个
JTextField
。 在swing中,这个片段字符串实现位于名为
SwingUtilities2
的类中

public static String clipString(JComponent var0, FontMetrics var1, String var2, int var3)
但此剪辑字符串逻辑将仅由某些组件使用。
例如:按钮、RadioButton、TabPane、MenuItem、Label。

TableCellRenderer的代码是什么,因为它看起来不像默认值…这是一个值得怀疑的例子,因为它创建了一个<代码>JTextField编辑器=新建JTextField()每次调用get cell renderer方法时。然后,它使用一个文本字段而不是(默认)
JLabel
,没有明显的原因。。您最好的选择是使用示例表单,它是一个文本字段(来自一个糟糕的示例)。作为旁白。如果需要“备用颜色行”,请检查默认值。Nimbus自动实现了这一点。@AndrewThompson这就是我所想的,只是想确定一下谢谢-但我不明白,如果没有设置渲染器,为什么字符串会被剪裁。当然,如果不使用渲染器或JLabels,它可以正常工作。很高兴知道。但在我的项目中,我会两者兼得。知道如何将此逻辑添加到(自定义)文本字段吗?“无渲染器”表示我们没有指定渲染器。然后将使用DefaultTableCellRenderer初始化表,DefaultTableCellRenderer是JLabel的子类。我看不出有什么好的理由使用文本字段作为渲染器。我的问题是,我有一个相当复杂的结构,有不同的TextField子类。因此,如果可能的话,将文本字段扩展为这种行为会更容易。