我试图让 JTextField
在其内容长于显示区域时显示点。我希望有与 JTable
相同的行为,当我调整列大小时,里面的文本会发生变化——当它太长时,只显示它的开头,然后有三个点(看看我请记住,请运行此 link 中的第一个示例并更改列大小 - 我不允许发布图片,因为我是新来的;)))
有可能吗?我想到的唯一解决方案是使用一个类扩展 JTextField
,该类将具有额外的字段 oryginalText
并且会表现得像那样(没有测试它,它只是一个提议,JtextField
的尺寸不会改变):
import javax.swing.JTextField;
public class MyTextField extends JTextField {
private String oryginalText;
private int length;
@Override
public void setText(String text) {
oryginalText = text;
if (oryginalText.length() > length)
super.setText(oryginalText.substring(0, length - 2) + "..");
else
super.setText(oryginalText);
}
}
有什么想法吗?
最佳答案
关于扩展 JTextField 和存储原始(未修剪)值的想法:
将文本字段显示为禁用(或不可编辑)并带有修剪文本。当用户点击文本字段时,使其启用/可编辑并显示整个原始文本。
然后当用户按下回车键或文本字段的焦点退出时:禁用/不可编辑和修剪文本。
关于java - 当内容太长时 JTextField 显示 '...',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9263947/