2017-11-19 3 views
1

투명한 부분으로 문자를 그릴 때 배경색이 빛나는 것을 볼 수 있습니다. 글꼴 투명 부분을 흰색으로 변경하려면 어떻게해야합니까?자바 AWT 그래픽 변경 drawString()의 배경색

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처럼 그걸 얻기 위해 수행 할 수

이 코드를 사용하여 예를 들어, 나는 chess pawn with gray background거야?

+3

간단한 해결책이 존재하지 않는다고 생각합니다. 투명 부분은 둘러싸인 루프 내에 포함 된 부분뿐만 아니라 글꼴 외부에도 포함됩니다. –

+0

@HovercraftFullOfEels * "단순한 솔루션이 존재하지 않는다고 생각합니다."* 사실, '간단하지 않은'해결책은 속임수에 대한 해답입니다. :) –

+0

@ 앤드류 톰슨 : 정말로 !! –

답변

2

나는 다양한 이유로 인해 일반 문자열 드로잉에서는 가능하지 않다고 생각합니다. 가장 쉬운 해결책은 문자열 대신 이미지를 사용하는 것입니다. String을 사용하기를 원한다면 텍스트 색상 자체를 변경하여 teamColor를 식별 할 수도 있습니다.

0

그냥 당신이 원하는 사진의 이미지를 만들어 10, 100에 그립니다.

+0

@HovercraftFullOfEels 어떻게? Ok –

+0

당신의 의도를 잘못 이해했습니다. 죄송합니다. –