问题标签 [listcellrenderer]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1003 浏览

java - 在 Java 中创建 JList,我将如何更改条目的背景颜色?

好的,所以我有JList几个项目。我选择一个项目,然后单击一个按钮。当我单击按钮时,我希望该项目的背景颜色永久更改。

我已经创建了一个自定义渲染器,但我能做的就是改变整个背景的颜色,或者在选中项目时改变它的背景颜色。那不是我想要的。我尝试使用 getBounds 获取 Rectangle 对象(所以我可以做一些事情,比如在 Rectangle 区域内绘制所有内容?)但我什至不知道如何开始。

我现在认为JList'sCellRenderer不支持这种东西,所以我想我必须做一些事情,比如创建一系列只读文本字段,单独设置其样式,并以某种方式将它们显示为列表?

我真的不需要任何代码(除非你想举个例子),我只是在寻找我将如何做到这一点的一般方向。

对不起,很长的文字。谢谢!

0 投票
1 回答
1171 浏览

java - Swing ListCellRenderer 的功能

关于JavaDoc 中javax.swing.ListCellRenderer示例代码的快速问题:

我有点惊讶,在示例中,ListCellRenderer是由扩展的类实现的,JLabel并且getListCellRendererComponent(...)- 方法只是返回this。看起来JLabel周围只有一个 a 实例,即使对于包含多个元素的列表也是如此。

通常,我会期望当在setText(...)内部为列表中的第二项调用该方法时getListCellRendererComponent(...),它会更改列表中已经存在的第一项的标签。或者,实际上,列表可能甚至不可能使用相同的JLabel-instance 两次(或多次),列表中的每个项目一次。

现在,我想出了两种可能的方法来解决这个问题,并且想知道哪一种(如果有的话)实际上正在发生:

  • 是否以某种方式为每个列表项JList创建提供的新实例?ListCellRenderer
  • 或者它是否使用返回的组件getListCellRendererComponent(...)仅在列表的画布上调用其paint(...)方法,而不是实际将此组件添加到某个面板?
0 投票
1 回答
1487 浏览

java - 向 JComboBox 动态添加项目(值 + 图标 = jlabel)

我使用 DefaultComboBoxModel 将特定项目添加到我的 JComboBox(字符串文本、图标图标)。但是出了点问题。当我将这两个项目添加到我的组合模型时,它看起来像这样:

总之,我的组合框代码如下所示:

我考虑过使用 ListCellRenderer,但我不知道如何“告诉”它应该同时使用“value”和“icon”来渲染 JLabel 组件。有可能通过使用 JButton 动态添加这些项目对我来说非常重要。

在此处输入图像描述

0 投票
1 回答
778 浏览

java - 自定义 ListCellRenderer 的 JList 显示错误

我在使用 JList 上的自定义 ListCellRenderer 时遇到问题。当 List 中只有 1 个项目时,单元格会正确显示,但当项目超过 1 个时,每个单元格接缝将被绘制,所有单元格的内容相互重叠,如下所示:

在此处输入图像描述

我的 CellRenderer 看起来像这样:

它是使用设置的

该方法getSendungen()返回一个 ArrayList uiSendungsbutton

如何让 JList 在自己的单元格中正确显示每个项目?

0 投票
0 回答
99 浏览

swing - 已选择 jlist 上的第一行

在网上进行了一些研究之后,我还没有真正找到我的问题的完整答案:我有一个 JList,我希望在我运行我的应用程序时,第一行已经被选中.. 像这样,至少有一个项目是选择避免 ArrayIndexOutOfBoundsException 是否有代码示例:

需要 ListCellRenderer 吗?先感谢您

0 投票
2 回答
604 浏览

java - Java Swing - 在 Motif L&F 的自定义组合框渲染器中消失的文本

我目前正在ListCellRendererJComboBox. 为此,我使用系统在 L&F 更改时获取新的渲染器,并将方法委托给它。这适用于所有 L&F。但是,当我将此组件放在面板中时(因此我可以添加更多组件),它在 Metal 和 Windows L&F 中运行良好,但JComboBox文本在 Motif 中消失了。见截图和代码:

第三个渲染器的问题

任何有助于理解为什么会发生这种情况的帮助将不胜感激!

0 投票
1 回答
875 浏览

java - 编写自定义 ListCellRenderer

我想编写一个自定义 ListCellRenderer。

唯一需要与默认值不同的是,它不显示 的返回值value.toString(),而是显示 的返回值value.myOwnCustomMethodThatReturnsString()

最简单的方法是什么?

所有这些所在的类已经实现了 ListCellRenderer,我有:

我只是不知道在括号之间放什么...

0 投票
1 回答
2391 浏览

java - 创建一个看起来像默认值的 ListCellRenderer?

要为任意对象自定义在 a 中显示的文本,JComboBox我知道正确的方法是创建一个自定义ListCellRenderer. 但是,我不确定如何以模仿与普通组合框相同的外观和感觉的方式执行此操作。

考虑下面的 SSCCE。它可以工作,但它有一条令人不快的线路,我在其中将一个组件转换为JLabel. 这是我不应该拥有也不应该依赖的魔法知识。有没有其他方法可以在不做如此丑陋的事情的情况下获得相同的效果?

0 投票
2 回答
155 浏览

java - ListCellRenderer - JLabel - 字符串 - n 行

所以我有这种情况:

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

但是,这些字符串真的很长,而 JList 真的很窄。这意味着字符串不适合。

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

它将对第一行进行 wordWrap,然后通过剪切字符串的其余部分并将三个点以填充最大空间的方式填充剩余的内容来完成第二行。

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

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

我该如何解决?

PS 我需要使用 JLabel 来获得视觉效果。

0 投票
1 回答
910 浏览

java - 如何将jpg放入JComboBox?

这是我到目前为止写的一个例子:

我在名为jpg的文件夹中的每个动物字符串数组项都有一个单独的 jpg,该文件夹位于(default package)的同一级别。我正在使用日食。

我的想法是让 JComboBox 能够显示jpg,同时使用带有我已经编码的某些鼠标单击事件的字符串(但不报告只是为了使其简短)。

我已经读过这个这个这个,但我无法真正完成工作:(

谁能解释我如何得到我想要的东西,也许修改我的代码以便我可以研究它?