April 5th, 2008
반투명 색 채우기의 두가지 방법

 alpha

자바로 반투명 색채우기를 구현하는 방법은 여러가지가 있지만
가장 알려진 방법은 AlphaComposite을 이용하는 방법(Alpha1.java)이다.

JAVA:
  1. protected void paintComponent(Graphics g) {
  2.     super.paintComponent(g);
  3.  
  4.     AlphaComposite alpha = AlphaComposite.getInstance(SRC_OVER, 0.5f);
  5.     Graphics2D g2 = (Graphics2D) g;
  6.     g2.setComposite(alpha);
  7.     g.setColor(BLACK);
  8.     int w = getWidth();
  9.     int h = getHeight();
  10.     g.fillRect(0, 0, w / 2, h);
  11. }

그런데 단색으로만 채울것 이라면 더 간단한 방법(Alpha2.java)이 있는데 의외로 모르는 사람이 많더라는..

JAVA:
  1. public static final Color TRANSCLUENT_BLACK = new Color(0f, 0f, 0f, 0.5f);
  2. ...
  3. protected void paintComponent(Graphics g) {
  4.     super.paintComponent(g);
  5.  
  6.     g.setColor(TRANSCLUENT_BLACK);
  7.     int w = getWidth();
  8.     int h = getHeight();
  9.     g.fillRect(0, 0, w / 2, h);
  10. }