gpt4 book ai didi

java - 使用图形的 jlabel 中文本之间的图标

转载 作者:行者123 更新时间:2023-11-30 09:58:19 26 4
gpt4 key购买 nike

如何使用图形在 JLabel 中绘制多个图标(即文本之间的图标)?请协助我完成这项工作

最佳答案

我会使用的一个选项是拥有一系列 JLabel。有图标的和只有文字的。

另一种选择是利用 JLabel 的迷你 HTML 支持:有

<html><img src='theimage.png'>The text<img src='theimage2.png'>

作为 JLabel 的文本。这种方法适用于文本格式,但我不确定图像标签是否也适用。

或者您确实覆盖了 JLabel.paint() 来进行自定义渲染?

然后我会使用以下方法:

List<Object> textAndImage = new ArrayList<Object>() {{
add("This ");
add(new ImageIcon("image1.png"));
add(" is ");
add(new ImageIcon("image2.png"));
add(" an ");
add(" imaged text sample ");
}};
FontMetrics fm = g.getFontMetrics();
int x = 0;
for (Object o : textAndImage) {
if (o instanceof String) {
g.drawString((String)o, x, fm.getHeight());
x += fm.stringWidth((String)o);
} else
if (o instanceof ImageIcon) {
((ImageIcon)o).paintIcon(null, g, x, 0);
x += ((ImageIcon)o).getIconWidth();
}
}

当然,这不是一个完全成熟的解决方案,但可能会为您提供一些如何继续操作的提示。

关于java - 使用图形的 jlabel 中文本之间的图标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1048302/

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