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

标签 java swing icons

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

相关文章:

java - 双向映射错误: Could not determine type

Java Generic Map 未在运行时转换为正确的类型以进行 Json 转换

java - 使用 junit 测试 Java 中的无修饰符方法

java - 我无法将字符串从 ActionListener 获取到 Java 中的不同类

java - 从 jpanel 中绘制和删除 jlabel

apache-flex - 在 Spark 按钮皮肤上添加图标

c++ - 从托盘中删除图标

JAVA - LString Java,链接字符串

swing - 如何在矩形上创建和分布对角条纹?

xcode - 缺少所需的图标文件 - 正好是 120x120、76X76 等...已尝试解决方案但没有成功