java - 如何自定义JLabel缩写文本

标签 java jlabel

当标签中的文本太长时,JLabel 将其缩写并在末尾添加 ...。我如何自定义此文本?

我有缩写为长文本的方法,但现在我不知道如何将它传递给 JLabel:

public static String abbreviateMiddle(String str, String middle, int length, int lengthSuffix) {
    if (StringUtils.isEmpty(str) || StringUtils.isEmpty(middle)) {
        return str;
    }

    if (length >= str.length() || length < (middle.length() + 2) || lengthSuffix > length
            || str.length() < lengthSuffix || length - middle.length() < lengthSuffix) {
        return str;
    }

    int targetSting = length - middle.length();
    int endOffset = str.length() - lengthSuffix;
    int startOffset = targetSting - lengthSuffix;

    StrBuilder builder = new StrBuilder(length);
    builder.append(str.substring(0, startOffset));
    builder.append(middle);
    builder.append(str.substring(endOffset));

    return builder.toString();
}

最佳答案

如图here ,标签的 UI 委托(delegate)根据 layoutCL() 中的要求添加省略号。调整框架大小以查看效果。您可以拦截结果以返回您喜欢的任何String

关于java - 如何自定义JLabel缩写文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16217798/

相关文章:

java - 为什么 PathparentPath = Paths.get(strPath) 会改变分隔符?

java - 在jsp页面中显示数据

java - 如何在 Spring 中创建一个默认的可覆盖组件?

Java SWT GUI 在长时间运行的后台进程期间对更新无响应

Java/Groovy/Grails 需要生成有意义的测试数据

java - 将 JLabel 中的文本右对齐

java - 如何将 JLabel[] 添加到 JTable?

java - 如何将一个类中的文本字段文本显示到另一个类的标签中

java - 修改 JLabel 文本会改变其对齐方式

java - setVisible(false) 为一组 JTextField 和 JLabel