gpt4 book ai didi

java - 如何让 JTextPane 显示省略号以表示文本溢出?

转载 作者:行者123 更新时间:2023-12-01 01:13:36 27 4
gpt4 key购买 nike

我使用 JTextPane 作为表格单元格渲染器来显示富文本。当文本太长无法放入单元格时,它会被截断。我想模仿 JLabel 的行为,即显示省略号 (...) 以提醒用户部分文本不可见。以前有人这样做过吗?


在 StanislavL 的帮助下,我最终采用了解决方案。该算法的工作原理是在 StyledDocument 末尾一次截掉一个字符,附加“...”并将生成的首选宽度与表格单元格宽度进行比较。这是低效的,尤其是在字符串很长的情况下,但对我来说不是问题。可以优化。以下内容进入渲染器的 getTableCellRendererComponent

    m_dummyTextPane.setDocument(doc);
m_dummyTextPane.setSize(Short.MAX_VALUE, table.getRowHeight());
int width = m_dummyTextPane.getPreferredSize().width;
int start = doc.getLength() - 1;
while(width >= table.getColumnModel().getColumn(col).getWidth() && start>0) {
try {
doc.remove(Math.min(start, doc.getLength()),
doc.getLength() - Math.min(start, doc.getLength()));
doc.insertString(start, "...", null);
} catch (BadLocationException e) {
e.printStackTrace();
break;
}
start--;
width = m_dummyTextPane.getPreferredSize().width;
}

最佳答案

您可以使用这个 http://java-sl.com/tip_text_height_measuring.html测量固定宽度的内容。如果它需要比可用空间更多的空间,只需在 JTextPane 上绘制一些东西。

我也喜欢 trashgod 的卷轴创意。 (+1)

关于java - 如何让 JTextPane 显示省略号以表示文本溢出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6611454/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com