当内容太长时,JTextField显示'...'

时间:2012-02-13 16:18:36

标签: java swing jtextfield

当我的内容比显示区域长时,我正试图制作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);
    }
}

任何想法?

1 个答案:

答案 0 :(得分:0)

关于扩展JTextField并存储原始(未修剪)值的想法:

将文本字段显示为已禁用(或不可编辑)且带有修剪文本。当用户对文本字段进行陈词滥调时,使其启用/可编辑并显示整个原始文本。

然后当用户按下回车键或文本区域的焦点退出时:禁用/不可编辑和修剪文本。