gpt4 book ai didi

Java改变颜色JLabel

转载 作者:行者123 更新时间:2023-12-01 12:05:45 25 4
gpt4 key购买 nike

如果你这样做,我知道如何从 JLabel 对象更改 java 中的颜色

JLabel label = new JLabel("label text");
label.setForeground(Color.red);

但是::

我像这样创建我的 JLabes 动态

center.add(new JLabel("Antwoord Vraag"+ (i +1) +": "+antwoord.get(i),SwingConstants.LEFT));

如何在不给对象命名的情况下更改 JLabel 对象的颜色。

最佳答案

您正在寻找的是 builder pattern对于JLabel,据我所知不存在。您可以创建自己的构建器类,或者使用您自己的类扩展 JLabel,该类将颜色作为构造函数参数(这很奇怪,因为 JLabel 有很多属性,想象一下如果他们每个人都有自己特殊的构造函数)。

JLabelBuilder 示例:

public class JLabelBuilder {
private Color fColor;
private String text;

public void setForegroundColor(Color c) {
fColor = c;
}

public void setText(String t) {
text = t;
}

public JLabel build() {
if (text != null && fColor != null) {
JLabel label = new JLabel(text);
label.setForeground(fColor);
return label;
} else {
...
}
}
}

用法:

center.add(new JLabelBuilder()
.setText("Antwoord Vraag" + (i + 1) + ": " + antwoord.get(i))
.setForegroundColor(Color.red)
.build());

无论如何,我没有看到多两行代码有什么坏处。出于可读性的原因,显式声明对象变量也是一个很好的做法。这也将在循环内工作:

for(int i = 0 ; i < maxCounter ; i++) {
String text = "Antwoord Vraag" + (i + 1) + ": " + antwoord.get(i);
JLabel label = new JLabel(text, SwingConstants.LEFT);
label.setForeground(Color.red);
center.add(label);
}

关于Java改变颜色JLabel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27626530/

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