首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ListCellRenderer - JLabel - String -n行

ListCellRenderer - JLabel - String -n行
EN

Stack Overflow用户
提问于 2013-09-20 01:41:01
回答 2查看 159关注 0票数 0

所以我有这样的情况:

我有一个显示一串字符串的JList。

但是,这些字符串非常长,JList非常狭窄。意味着琴弦不合身。

我要做的是让每个条目有两行,如下所示:

代码语言:javascript
复制
|Word word word  |
|word word wor...|

它将对第一行执行wordWrap操作,然后通过裁剪字符串的其余部分来完成secon行,并以最大空间填充的方式将这三个点插入到剩余的位置。

我做什么并不重要,重要的是我必须使用FontMetrics来测量所有这些东西,这样我才能让它工作。这就是问题所在。

在执行整个getListCellRendererComponent(...)方法之前,组件将不会被绘制,因此没有图形,因此无法测量任何字体。

我怎么才能绕过它?

我需要用JLabel作为视觉效果。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-09-20 01:49:35

组件将不会被绘制,因此没有图形,从而使任何字体测量不可能。

您不需要图形来使用FontMetrics。

请参见左点渲染器,它用于JTable,但是列表呈现器的概念应该是相同的。

票数 2
EN

Stack Overflow用户

发布于 2013-09-20 01:47:36

你需要使用JLabels吗?让getListCellRendererComponent()返回高度设置为2行且setLineWrap()和setWrapStyleWord()都设置为true的JTextArea要容易得多。使JTextArea不可编辑,它将看起来像一个2行JLabel。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18907637

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档