관리 메뉴

취미개발 블로그와 마음수양

자바 투명 프레임.. (패널이 아니라...) 본문

Language/java소스

자바 투명 프레임.. (패널이 아니라...)

아라한사 2014. 5. 6. 13:48

패널 투명은 아마..


setOpacue 였나.비슷한거 자동완성쳐서 False 넣으면 Png 파일등을 이미지처리햇을대 나머지 부분을 투명처리해줄 수 있다.


하지만 자바 윈도우의 기본이 되는 프레임을 투명처리 해주기위해서는 조금 더 과정이 필요하다.


먼저 패널부분..



class MyPanel extends JPanel {
		Image image;

		MyPanel(String img) {
			image = Toolkit.getDefaultToolkit().createImage(img);

	        setOpaque(false);
		}

		public void paintComponent(Graphics g) {
			super.paintComponent(g);
			if (image != null) {
				g.drawImage(image, 0, 0, this);
			}
			

	        // Apply our own painting effect //이거 투명만들기 소스인데 이해가 안가는데 그냥 쓴다.ㅋㅋ
	        Graphics2D g2d = (Graphics2D) g.create();
	        // 50% transparent Alpha
	        g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.0f));

	        g2d.setColor(getBackground());
	        g2d.fill(getBounds());
	        g2d.dispose();
		}
	}


흠 그리고 이를 호출하는 프레임 부분..
setLayout(null);
		
		// 타이틀 바 처리 연습
		setUndecorated(true); //이걸 해줘야 타이틀 바가 사라진다.
		setBackground(new Color(0, 255, 0, 0)); //이게 검은색 같은데..

panel = new MyPanel("img/mainHud_backTran.png");
		setContentPane(panel);
		getContentPane().setBackground(Color.BLACK);




이정도 해주면 되지 싶다.