首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在drawString()中使用java.awt.graphics中的多种颜色?

如何在drawString()中使用java.awt.graphics中的多种颜色?
EN

Stack Overflow用户
提问于 2014-05-11 09:35:58
回答 1查看 1.6K关注 0票数 2

好吧,这就是问题所在。

代码语言:javascript
复制
g.setColor(Color.WHITE);
g.drawString("all your base belong to us",x,y);

下面的代码使得显示的字符串是白色的和完全白色的。

我的目标是使字符串的某一部分,例如,我希望在字符串中的单词"base“是一个不同的颜色,黄色在这个例子。

我最可能使用的代码是:

代码语言:javascript
复制
g.drawString("all your #ffd700base belong to us",x,y);

该代码试图将文本设置为黄色,从“base”一直到句子末尾。

虽然它的输出是:

http://i.stack.imgur.com/lB2WC.png

忽略背景,只需看字符串。“# The 700”成为字符串的一部分,然后显示。

这不管用,我找不到解决办法。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-11 09:47:42

同样的问题也解决了。请看下面的帖子:

在上述链接中提到的代码更改后的示例代码:

代码语言:javascript
复制
import java.awt.Color;
import java.awt.Dimension;
import java.awt.EventQueue;
import java.awt.Graphics;
import javax.swing.CellRendererPane;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

public class PaintComponentTest extends JPanel {

    private static final String s = "<html>all your <font color=\"#ffd700\">base</font> belong to us</html>";
    private JLabel renderer = new JLabel(s);
    private CellRendererPane crp = new CellRendererPane();
    private Dimension dim;

    public PaintComponentTest() {
        this.setBackground(Color.lightGray);
        dim = renderer.getPreferredSize();
        this.add(crp);
    }

    @Override
    protected void paintComponent(Graphics g) {
        super.paintComponent(g);
        renderer.setForeground(Color.WHITE);
        crp.paintComponent(g, renderer, this, 10, 10, dim.width, dim.height);
    }

    private void display() {
        JFrame f = new JFrame("PaintComponentTest");
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.getContentPane().add(this);
        f.pack();
        f.setSize(200, 70);
        f.setLocationRelativeTo(null);
        f.setVisible(true);
    }

    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {

            @Override
            public void run() {
                new PaintComponentTest().display();
            }
        });
    }
}

截图:

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23591034

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档