스윙과 함께 제공되는 양식은 응용 프로그램 요구를 충족시킬 수 없으므로 다음 그림과 같은 그림과 모양의 JFrame 프레임을 만들어야합니다.
형태 배경 이미지의 투명성을 설정할 수 있습니다.
다음은 위 그림의 효과를 달성하는 방법을 설명합니다.
(1) 우선, 양피지와 같은 좋은 그림이 필요합니다. 그러나 다운로드 된 그림은 정사각형 사각형이며 양피지의 모양이 그림 안에 있으므로 Meitu Xiuxiu 또는 PS의 컷 아웃 기능을 사용하여 양피지 용지를 선택합니다.
(2) 그림을 투명한 배경으로 저장하십시오.
(3) 그런 다음 MyJframe을 작성하여 JFrame을 상속 받으십시오. 코드는 다음과 같습니다.
import com.sun.awt.awtutilities; javax.swing을 가져옵니다.*; java.awt.*; 공개 클래스 myjframe은 jframe {private float alpha; public myjframe (String bgpath, float alpha) {super (); MyContentPane RP = 새로운 MyContentPane (BGPATH); rp.setopaque (false); // 컨텐츠 패널을 투명하게 설정 this.setContentPane (rp); this.setUndEcorated (true); this.setsize (rp.img.geticonwidth (), rp.img.geticonheight ()); awtutilities.setwindowopaque (this, false); // this.alpha = alpha; } 개인 클래스 MyContentPane 확장 jpanel {public imageicon img; public myContentPane (String bgpath) {super (); img = new ImageIcon (test.class.getResource (bgpath)); } @Override Protected Void PaintComponent (Graphics G) {alphacomposite ac = alphacomposite.getinstance (alphacomposite.src_over, alpha); composite old = ((Graphics2d) g) .getComposite (); ((Graphics2d) g) .SetComposite (AC); if (img! = null) {G.DrawImage (img.getImage (), 0, 0, getWidth (), getheight (), this); } ((Graphics2d) g) .SetComposite (구); super.paintcomponent (g); }}} 위의 프로그램의 주요 코드는 다음과 같습니다. JFrame을 투명하게 설정하고 JFrame의 경계를 제거하고 컨텐츠 패널을 투명하게 설정 한 다음 컨텐츠 패널에 그림을 그립니다.
(4) 시험 수업 테스트 작성 :
javax.swing을 가져옵니다.*; java.awt.*; 공개 클래스 테스트 {public static void main (String [] args) { /*** 배경 이미지의 투명성을 설정하고 배경 이미지는 완전히 투명하며 1.0f는 불투명합니다. */ myjframe f = new MyJframe ( "ab.png", 0.7f); f.setlayout (null); font font = new Font ( "宋体", font.plain, 30); jlabel user = new Jlabel ( "사용자 이름"); user.setfont (font); user.setbounds (100,150,100,30); jtextfield userInput = new Jtextfield (); userInput.setfont (font); userInput.setBounds (200,145,250,40); jlabel ps = new Jlabel ( "비밀번호"); ps.setfont (font); ps. 세트 바운드 (110,200,90,30); jtextfield psinput = new Jtextfield (); psinput.setfont (font); psinput.setbounds (200,195,250,40); f.add (사용자); f.add (userInput); f.add (ps); f.add (psinput); F. 세트로 위치 (300,100); f.setDefaultCloseOperation (jframe.exit_on_close); F. 세트 Visible (true); }}(5) 국경이 제거되면 양식을 드래그하고 늘릴 수 없습니다. 양식의 드래그 및 스트레칭을 실현하려면이 기사를 참조하십시오.
위는이 기사의 모든 내용입니다. 모든 사람의 학습에 도움이되기를 바랍니다. 모든 사람이 wulin.com을 더 지원하기를 바랍니다.