透明部分で文字を描画すると、背景色が輝いていることがわかります。フォントの透明部分を白に変更するにはどうすればよいですか?Java AWTグラフィックスの変更drawString()の背景色
このコードを使用たとえば、私は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のようにそれを得るために何ができますか?
私は単純な解決策は存在しないと思います。透明部分は、囲まれたループ内に含まれる部分だけでなく、フォントの外側の周りにも含まれます。 –
@HovercraftFullOfEels *「私は単純な解決策はないと思う」*真実であるが、「あまり単純ではない」解決策は、詐欺に対する答えである。 :) –
@AndrewThompson:確かに!! –