如何使用图形在 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/