gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 05:40:17 24 4
gpt4 key购买 nike

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

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

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

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

抱歉,文字太长了。谢谢!

最佳答案

你做同样的事情,但是如果用户的操作表明它应该被锁定,你会写出你的代码逻辑来锁定呈现的颜色。关键在于您的代码逻辑。也许您想更改正在呈现的对象的状态,或者您可能想更改将呈现的颜色保存为值并将显示的对象保存为键的 Map 的状态。我可能会选择后者。

例如,

// ListItemType is whatever type is being displayed in your JList.
Map<ListItemType, Color> listItemBackground = new HashMap<ListItemType, Color>();
// now add each item to the JList with the default background color.
  • 您的渲染器将使用此 map 来决定要绘制的背景颜色。
  • 当用户做出选择并使项目具有新的背景颜色时,您可以更改 map 保留的颜色并重新绘制列表。
  • 如果要显示其背景,请确保渲染器不是不透明的。

关于java - 在 Java 中创建 JList,我将如何更改条目的背景颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17872438/

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