Java AWT Graphics改变了drawString()的背景颜色

时间:2017-11-19 20:12:39

标签: java graphics fonts awt

使用透明部分绘制字符时,您可以看到透过的背景颜色。如何将字体透明部分更改为白色?

例如,使用此代码,我得到chess pawn with gray background

package com.gmail.vstollen;

import javax.swing.*;
import java.awt.*;

public class Example extends JPanel {

    @Override
    protected void paintComponent(Graphics g) {
        super.paintComponent(g);

        g.setColor(Color.GRAY);
        g.fillRect(0 ,0, getWidth(), getHeight());

        //Font containing chess figures
        g.setFont(new Font("DejaVu Sans", Font.PLAIN, 100));

        g.setColor(Color.BLACK);
        g.drawString("\u2659", 10, 100);
    }

    public static void main(String args[]) {
        JFrame frame = new JFrame("Example");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(200, 200);
        frame.add(new Example());
        frame.setVisible(true);
    }
}

我该怎样做才能让它像this一样?

2 个答案:

答案 0 :(得分:2)

由于各种原因,我不认为使用普通的字符串图纸是可能的。最简单的解决方案是使用Images而不是Strings;虽然如果你真的想使用字符串,你也可以改变文本颜色本身以识别teamColor(无论你喜欢哪种)。

答案 1 :(得分:0)

只需制作所需图片的图片,然后将其绘制到10, 100