Java AWT Graphics更改drawString()的背景颜色[重复]
Posted
技术标签:
【中文标题】Java AWT Graphics更改drawString()的背景颜色[重复]【英文标题】:Java AWT Graphics change drawString()'s background color [duplicate] 【发布时间】:2018-05-03 01:16:10 【问题描述】:在绘制带有透明部分的字符时,您可以看到背景颜色的透光。如何将字体透明部分更改为白色?
例如使用这段代码,我得到一个chess pawn with gray background:
package org.some.package;
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一样得到它?
【问题讨论】:
我认为不存在简单的解决方案。透明部分不仅包含在封闭循环中,还包括字体外部。 @HovercraftFullOfEels “我认为不存在简单的解决方案” 虽然是这样,但“不太简单”的解决方案是欺骗的答案。 :) @AndrewThompson:确实!! 【参考方案1】:由于各种原因,我认为普通的字符串绘图是不可能的。最简单的解决方案是使用图像而不是字符串;不过如果你真的想使用字符串,你也可以改变文本颜色本身来识别一个 teamColor(你喜欢哪个)。
【讨论】:
【参考方案2】:只需将你想要的图片制作成图片,然后绘制到10, 100
即可。
【讨论】:
@HovercraftFullOfEels 怎么样?好的 误解了您的意图。对不起。以上是关于Java AWT Graphics更改drawString()的背景颜色[重复]的主要内容,如果未能解决你的问题,请参考以下文章
Java AWT 图形界面编程Canvas 组件中使用 Graphics 绘图 ② ( AWT 绘图步骤 | Graphics 绘图常用 API )