لا يمكن أن يلبي النموذج الذي يأتي مع Swing احتياجات تطبيقنا ، لذلك تحتاج إلى إنشاء إطارات JFrame لأي صورة وشكل ، مثل الصورة التالية:
ويمكنك تعيين شفافية صورة الخلفية النموذج
يشرح ما يلي كيفية تحقيق تأثير الصورة أعلاه:
(1) أولاً وقبل كل شيء ، تحتاج إلى صورة جيدة ، مثل شهادة الرق. ومع ذلك ، فإن الصورة التي تم تنزيلها هي مستطيل مربع ، وشكل شهادة جامعية داخل الصورة ، لذلك نستخدم وظيفة القطع في Meitu Xiuxiu أو PS لاختيار ورق البرشمان ، على النحو التالي:
(2) احفظ الصورة كخلفية شفافة.
(3) ثم اكتب myjframe وراثة Jframe ، الرمز كما يلي:
استيراد com.sun.awt.awtutilities ؛ استيراد javax.swing.*؛ استيراد java.awt.*؛ الطبقة العامة myjframe يمتد Jframe {private float alpha ؛ myjframe العامة (String bgpath ، float alpha) {super () ؛ myContentPane rp = new MyContentPane (BGPath) ؛ rp.setopaque (false) ؛ // اضبط لوحة المحتوى على شفاف this.setContentPane (RP) ؛ this.setUndEcorated (true) ؛ this.setsize (rp.img.geticonwidth () ، rp.img.geticonheight ()) ؛ awtutability.setwindowopaque (هذا ، خطأ) ؛ // ضبط على jframe كما شفافية this.alpha = alpha ؛ } فئة خاصة MyContentPane تمتد JPanel {public imageicon img ؛ public myContentPane (String bgpath) {super () ؛ img = new imageicon (test.class.getResource (BGPath)) ؛ } Override paintcomponent paintcomponent المحمية (الرسومات G) {Alphacomposite AC = Alphacomposite.getInstance (Alphacomposite.src_over ، alpha) ؛ المركب القديم = (((graphics2d) g) .getComposite () ؛ ((graphics2d) g) .setComposite (AC) ؛ if (img! = null) {g.drawImage (img.getImage () ، 0 ، 0 ، getWidth () ، getheight () ، this) ؛ } ((graphics2d) g) .setComposite (Old) ؛ Super.PaintComponent (G) ؛ }}} الكود الرئيسي للبرنامج أعلاه هو: تعيين JFRAME على شفاف ، وإزالة حدود JFRAME ، وتعيين لوحة المحتوى على شفاف ، ثم ارسم الصورة على لوحة المحتوى.
(4) اكتب اختبار فئة الاختبار:
استيراد javax.swing.*؛ استيراد java.awt.*؛ اختبار الفئة العامة {public static void main (string [] args) { /*** اضبط شفافية صورة الخلفية وصورة الخلفية ، 0 شفافة تمامًا ، و 1.0f غير شفاف. */ myjframe f = new myjframe ("ab.png" ، 0.7F) ؛ F.SetLayout (NULL) ؛ font font = new font ("宋体" ، font.plain ، 30) ؛ jlabel user = new JLabel ("username") ؛ user.setfont (الخط) ؛ 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 (الخط) ؛ Ps.SetBounds (110،200،90،30) ؛ JTextField psinput = new JTextField () ؛ psinput.setfont (الخط) ؛ psinput.setBounds (200،195،250،40) ؛ F.Add (المستخدم) ؛ F.Add (userInput) ؛ F.Add (PS) ؛ F.Add (psinput) ؛ F.SetLocation (300،100) ؛ f.setDefaultCloseOperation (jframe.exit_on_close) ؛ F.SetVisible (صحيح) ؛ }}(5) منذ إزالة الحدود ، لا يمكن سحب النموذج وتمديده. انظر هذا المقال لتتأرجح لإدراك السحب وتمديد النموذج.
ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.